首页 > 开发 > 综合 > 正文

C#利用CDOSYS组件发邮件的一些小结

2024-07-21 02:26:25
字体:
来源:转载
供稿:网友

建立 asp.net web项目。


using system.web.mail;

首先看看利用inter网上的smtp服务器来发邮件,现在普遍是登陆smtp需要验证的。这里我们使用的是网易的邮件服务器。


private void sendmailbysmtp()
{
 // 使用一个smtp的服务器,并且通过验证
 mailmessage mailobj = new mailmessage();
 mailobj.from = "[email protected]";
 mailobj.to = "[email protected]";
 mailobj.subject = "测试";
 mailobj.bodyformat = mailformat.text;
 mailobj.body = "看到了么?";
 // 通过smtp服务器验证
 mailobj.fields.add("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate", "1");
 mailobj.fields.add("http://schemas.microsoft.com/cdo/configuration/sendusername", "username");
 mailobj.fields.add("http://schemas.microsoft.com/cdo/configuration/sendpassword", "userpassword");
 smtpmail.smtpserver = "smtp.126.com";
 smtpmail.send(mailobj);
}
 

注意:如果使用需要验证的smtp服务器来发送信件,那么要确保你在这个邮件服务上有合法的注册用户。而且mailobj.from必须也是你自己。也就是说,全部是真实的信息。当然,我发现如果你可以改发件人的名称。比如,我们这样写

mailobj.from = "干部<[email protected]>";
这样在smtp服务商同样能验证通过,对于收件人来说在收到邮件时会看到比较个性的发件人名称(eyou会显示为“干部<[email protected]>”而网易会显示为“干部”)。当然不论怎么显示,你发信时的email地址肯定对方是能知道的,可以给你回复。再有,我想可能有些邮件服务器对一些敏感字符作了过滤,我遇上一次,记不得是哪家了。

接下来是用自己的服务器发信了,这个比较爽,也比较狠。
首先要保证你的服务器上有iis,并运行和配置好“smtp虚拟服务器”。
先来说说如何搞定smtp吧[以windowsxp iis5 为例]:
1.开启iis-smtp服务
2.smtp的右键菜单-属性-访问-中继
两种方法:选择“仅以下列表”添加“127.0.0.1”或者选择“仅以下列表除以”不添加任何ip[这样是允许全部用户,不建议这样,否则你的机器在网上运行一阵就让垃圾邮件给玩死了]。
邮件在发送、失败、等待队列……都在"c:/inetpub/mailroot/"下的对应文件夹里。
好了,看代码:


private void sendmailbylocalhost()
{
 // 使用自己的虚拟邮件服务器
 mailmessage mailobj = new mailmessage();
 mailobj.from = "只要不空的就可以"; // 只是说程序本身不会出错
 mailobj.to = "[email protected]";
 mailobj.subject = "测试";
 mailobj.bodyformat = mailformat.text;
 mailobj.body = "看到了么?";
 smtpmail.smtpserver = "localhost";
 smtpmail.send(mailobj);
}

代码很少,而且“发信的速度”明显比上一种方法要快,当然了,其实是提交到本机虚拟邮件服务发送队列而已。
这里要说的是,这种方法真的比较狠:
有的邮件系统根本不校验发送方的email是不是合法,mailobj.from填什么它都照单全收给自己的用户。
有的邮件系统则要看看发送方的email是不是合法,如果不合法有的会做垃圾邮件处理,有的会“消失”了(真的不知道去哪里了),有的会在本机的c:/inetpub/mailroot/的子文件夹下滞留。sina的邮箱最怪,用这种方式不过from写的是真是假一概发不出,而且一直在queue里挂着。比较郁闷……暂时还不明白为什么,也许别人看看是不是能试验成功。或是有什么解决办法记得告诉我。
是不是比较狠?我本人最烦的垃圾邮件就这样肆虐了!

 

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表