利用JMail组件快速构建邮件程序(上)
2010-06-29 20:42:30 来源:WEB开发网2.6 经代理网关发送邮件
上文所说的SMTP中继服务器上的邮件传输代理程序(MTA),与WINGATE,CPROXY等代理软件提供的SMTP代理工作原理是一样的,所以具体的发送过程也一样,例如:
代理网关地址 192.16.10.11, 要往yourmail@yourdomain.com发信,代码如下:
......
pMessage->AddRecipient("yourmail@yourdomain.com","","");
pMessage->Send("192.16.10.11", VARIANT_FALSE);
2.7 关于邮件的加密传输与集群发送
JMail的免费版本并没有提供加密传输与集群发送功能,要想使用这些功能,您需要安装无限制的JMail标准版或专业版。
对于加密传输,您还需要安装PGP软件,例如:PGPFreeware
集群发送功能在拥有成千上万个客户时是非常有用的,定制好模板后,数据库中的记录自动填入模板生成信件发送。
由于笔者只有免费版本的JMail,所以这一功能未能尝试。
虽然免费版未提供集群发送功能,但我们可以只使用IMessage接口结合数据库来实现集群发送功能.
2.8 邮件发送时的常见错误
当所设置的SMTP服务器不存在,错误信息:
The message was undeliverable. All servers failed to receive the message
如果没有设置SMTP服务器时,试图发送一封错误邮件地址的信,
例如:webmaster@sohusohu.com 将返回如下错误信息:
WSAGetLastError() returned 11001, Host not found
许多SMTP服务器不支持转发,或支持转发但不转发MAIL FROM不是本地帐号的信,错误信息:
The message was undeliverable. All servers failed to receive the message
许多SMTP服务器不接收外部的邮件,例如smtp.sohu.com,所以想要向SOHU发信你可以不设邮件服务器, 而是通过
DNS查询邮件交换服务器,或者直接将邮件服务器设置为sohumx.sohu.com。
像SOHU信箱会对一些发件人信箱进行过滤,例如您将发件人信箱设为test@163.com,或者发件人信箱与收件人信箱一致,
发信时将返回:554<test@163.com>:Sender address rejected:Access denied
(未完待续...)
本文配套源码
更多精彩
赞助商链接