【项目实施随笔】发个邮件可真困难
用户想在某个动作之后给相关人员发个邮件提醒,由于他们使用的发邮件的东西都不一样,有的用Outlook,有的用OutlookExpress,还有的是FoxMail的忠实用户,所以干脆用SysMailer通过CDO组件发送得了,代码如下:
Code);
sysMailer.fromAddress("TestTest@126.com");
sysMailer.tos().appendAddress("Test111@sina.com.cn");
sysMailer.tos().appendAddress("TestTest@hotmail.com");
sysMailer.ccs().appendAddress('TestTest@sina.com.cn');
sysMailer.subject("Hello,Just a test");
sysMailer.htmlBody(@"<html>
<head></head>
<body>
<table>
<tr>
测试邮件
</tr>
<tr>
测试邮件2
</tr>
</table>
</body>
</html>");
sysMailer.attachments().add(@"C:\replaceOnlookup.jpg");
sysMailer.attachments().add(@"C:\Pick2.jpg");
sysMailer.sendMail();
}
sysMailer.fromAddress("TestTest@126.com");
sysMailer.tos().appendAddress("Test111@sina.com.cn");
sysMailer.tos().appendAddress("TestTest@hotmail.com");
sysMailer.ccs().appendAddress('TestTest@sina.com.cn');
sysMailer.subject("Hello,Just a test");
sysMailer.htmlBody(@"<html>
<head></head>
<body>
<table>
<tr>
测试邮件
</tr>
<tr>
测试邮件2
</tr>
</table>
</body>
</html>");
sysMailer.attachments().add(@"C:\replaceOnlookup.jpg");
sysMailer.attachments().add(@"C:\Pick2.jpg");
sysMailer.sendMail();
}
运行,不幸,得到如下错误:
咋还出乱码了那,还好有代码,去网上一查,还好我们有bing,有问题"bing"一下(微软可真会找乐,搞这么名字做引擎。。。)
[COMException (0x80040213): 与服务器的传输连接失败。
原来是我的McAfee把我给阻止了,打开McAfee的控制台,双击 访问保护,找到 禁止群发邮件蠕虫发送邮件,把Ax32.exe添加到要排除的进程中就可以了,至于其他杀毒软件,在具体情况具体分析吧。
OK,终于可以发了,应该一切OK了吧,且慢,我要发送给两个邮件地址,咋只有后一个地址能收到?AX4.0的bug,修改如下,找到类SysMailerAddressField的appendAddress方法,修改
if (strlen(addresses) > 0)
{
address = ',' + address;
}
{
address = ',' + address;
}
为
if (strlen(addresses) > 0)
{
address = addresses+ ',' + address;
}
{
address = addresses+ ',' + address;
}
好了,终于消停了。