[Lgz].Delphi6+Outlook2000=半自动迂回发送邮件

[Lgz].Delphi6+Outlook2000=半自动迂回发送邮件

近来有需要,想通过编程自动:从配置文件或数据库中读取收件人地址信息、加入想发送的内容、发送邮件。在网上找了很多资料,通常都是介绍利用FastNet控件页上的NMSMTP控件,或Indy上的IdSMTP控件发送。但NMSMTP太陈旧了,以前的文章介绍时,居然不用键入密码?!有的文章也说,不少免费邮箱对Indy控件进行了限制,不知道是不是这么回事。反正网上提到的这两种典型的方法我都试了很多遍,全都失败了。排除了系统的原因后,冷静考虑了一下,现在电子邮件使用非常广泛,似乎没有哪个邮箱不再不需要认证就让用户发送邮件,而且现在的邮箱全都有反垃圾邮件的功能,安全功能越来越强,以前的方式就显得落伍了。

那还有没有其它办法呢?后来找到了一个,相当简单,但是稍微绕了点弯。

大部分通常是使用Outlook(Express)等客户端软件进行收发软件,微软的东西基本上还是比较通用的,如果Outlook都不能收发邮件,基本上就是远方邮箱服务器的问题了。那么就可以把要发送的邮件先加入到Outlook的发件箱中,然后启动Outlook,点一下发送全部就行了。有人会问——那干脆直接用Outlook写信、发信不就得了?一两封可以,但很多封就比较麻烦了,也许有简单的方法,只是我还没有找到吧?

实现的具体方法是,从Servers控件栏上,拖动一个TOutlookApplication组件放到窗体中,然后写入下面的代码:


procedure TForm1.nClick(Sender: TObject);
var MI: _MailItem;
begin
    Try OutlookApplication1.AutoQuit:=True;
        OutlookApplication1.Connect;
        MI := OutlookApplication1.CreateItem(olMailItem) as MailItem;

        //邮件发给谁
        MI.Recipients.Add('WhoWillReceive@his.pop3.com');

        MI.Subject := '这是邮件的主题或者题目';
        MI.Body := '这是邮件的正文';
        //MI.Attachments.Add(Path, EmptyParam, EmptyParam,MI.Display(null); //Path是图片 的路径
        MI.Send;

       Showmessage('邮件存入到了Outlook的发件箱');
    except
       Showmessage('没有安装或不能启动OutLook!');
    end;
end;

以上代码在我的163邮箱测试成功,几个收件人都收到了我半自动发出的邮件。


Qq:7⒐⑼⑤㈦ⅸⅣ.4

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值