jmail发信.docVIP

  • 6
  • 0
  • 约5.08千字
  • 约 9页
  • 2018-01-01 发布于河南
  • 举报
jmail发信 本文示例源代码或素材下载   当你需要在VC程序中提供邮件支持功能的时候,你有许多种选择:   1)根据SMTP,POP3,MIME等协议从零开始实现。这要求熟悉RFC 821,RFC 822,RFC 1123, RFC 1652, RFC 1939, RFC2045-2049等一系列协议, 您可以实现一切可能实现的功能,但同时需要花大量的时间。   2)利用一些免费的封装类,比如CSMTP,CPOP3。虽然可以达到快速实现的目的,但功能非常有限。   3)利用MAPI调用支持MAPI的邮件发送程序( 例如:Outlook )发送邮件,这种实现方式需要客户端安装指定的邮件发送程序,不够灵活   4)利用现成的组件例如:w3 JMail组件来构建您的系统,JMail组件功能强大,可以轻松完成邮件发送、接收、加密、集群传输等工作。   虽然JMail用得最多的是ASP下的应用,但它在其它语言中都能够很好地工作,本文将针对w3 JMail 4.3在VC中的使用展开讨论。   一、准备篇   1.1 组件的安装   因为JMail4.3与以前的版本相比接口有了变动,所以推荐您使用4.3版本,您可以到以下网址下载JMail 4.3   DIMAC公司 /   VC知识库 /tools   1.2 快速邮件发送程序MINI版   我们从这个小例子大致了解一下JMail组件的工作过程 #import jmail.dll     // 导入jmail.dll, 假如jmail.dll不在工程目录下,您需要写上完整路径 void main() {   CoInitialize(NULL);   // COM的初始化   {     // 创建SpeedMailer实例     jmail::ISpeedMailerPtr pSpeedMailer(JMail.SpeedMailer);            // 发送邮件     pSpeedMailer-SendMail(yourmail@163.com,    // 发件人邮箱           webmaster@163.com,    // 收件人邮箱           主题:你好!,        // 主题           正文:大家好才是真的好!,  // 正文           );      // SMTP服务器   }   CoUninitialize(); } 看了上述代码您肯定会说真的很容易,这个例子是利用了ISpeedMailer接口来发送简单的邮件,我想大家一看就清楚。   为了使这个流程看起来不至于令人生畏,我把异常捕捉省略了,在实际使用中应该加入异常捕捉,具体方法请见下文。   1.3 异常捕捉   这里的异常捕捉与我们所使用的捕获COM异常没有两样,在这里稍加描述只是提高本文的完整性,请看如下代码: try {   ...   ... 发送代码   ... } catch( _com_error e) {   cerr 错误号: 0x hex e.Error() endl;   cerr 错误信息: e.ErrorMessage() endl;   cerr 错误描述: e.Description() endl; }   二、邮件发送篇 下图是本文附带的邮件发送程序运行效果图:   2.1 利用IMessage接口发送带附件的邮件   在前面我们用ISpeedMailer接口来发送邮件,但功能有限,IMessage接口为我们提供了功能完备的发送功能,请看下面的例子: jmail::IMessagePtr pMessage(JMail.Message); // 发件人邮箱 pMessage-From = mymail@; // 发件人姓名 pMessage-FromName = 我的名字; // 添加收件人1, 无收件人姓名与PGP KEY pMessage-AddRecipient(yourmail1@,,); // 添加收件人2, 无PGP KEY pMessage-AddRecipient(yourmail2@,收件人名字,); // 添加收件人3,这里的PGP KEY只是作为示例,实际中需要用PGP软件生成 pMessage-AddRecipient(yourmail3@,收件人名字,R9Rb7decrQWINuce3uFc0xDG); // 优先级设置,1-5逐次降低, 3为中级 pMessage-Priority = 3; // 编码方式设置, 默认是iso-8859-1 pMessage-Charset = GB2312; // 主题 pMessage-Subject = 邮件主题; // 正

文档评论(0)

1亿VIP精品文档

相关文档