首页 新闻 会员 周边

C#邮件发送程序——测试3个163的账号,只有一个成功发送!——很奇怪的问题

0
悬赏园豆:20 [已解决问题] 解决于 2010-01-01 17:26

测试了三个作为发件人的163账号,只有一个能成功,而且怎么发都没有问题。但是用另外的两个怎么发都是提示:邮件无法发送到 SMTP 服务器。传输错误代码为 0x80040217。服务器响应为 not available。

PS:密码是没有错误的,登录邮箱来验证过。成功的是自己一直在用的账号,有四五年了。另一个是朋友的,不成功,然后自己再注册一个新的来测试,也不成功。难道163的账号分级别对待,在某个日期前注册的账号能用这个功能?还是自己的设置问题?

大虾们~指点指点啊!有劳了。。

 

用过两个程序测试,结果都一样,一个是Interop.jmail.dll ,代码如下:

代码
1 protected void btnsend_Click(object sender, EventArgs e)
2 {
3 //建立发送邮件对象
4   jmail.MessageClass jm = new jmail.MessageClass();
5 //设置邮件编码方式
6   jm.Charset = "GB2312";
7 //是否将信头编码成iso-8859-1字符集
8   jm.ISOEncodeHeaders = false;
9 //邮件的发送人的信箱地址
10 jm.From = this.txtSender.Text;
11 //邮件的发送人
12 jm.FromName = this.txtSUser.Text;
13 //邮件的主题
14 jm.Subject = this.txtSubject.Text;
15 //身份验证的用户名
16 jm.MailServerUserName = this.txtEUser.Text;
17 //身份验证的密码
18 jm.MailServerPassWord = this.txtEPwd.Text;
19 //如果需要添加多个收件人,则重复下面的语句即可
20 jm.AddRecipient(this.txtReceiver.Text, "", "");
21 //邮件内容
22 jm.Body = this.txtContent.Text;
23 //判断是否添加附件
24 if (upload.PostedFile.FileName != "")
25 {
26 string attpath = upload.PostedFile.FileName;
27 jm.AddAttachment(attpath, true, attpath.Substring(attpath.
28 LastIndexOf(".") + 1, 3));
29 }
30 //邮件服务器
31 string str = this.txtEServer.SelectedValue;
32 if (jm.Send(str, false))
33 {
34 Page.RegisterClientScriptBlock("OK", "<script>alert('发送成功!')</script>");
35 }
36 else
37 {
38 Page.RegisterClientScriptBlock("OK", "<script>alert('发送失败,请仔细检查邮件服务器的设置是否正确!')</script>");
39 }
40 jm = null;
41
42 }

 

另一个是用微软的类:代码如下:

代码
1 protected void btnsend_Click(object sender, EventArgs e)
2 {
3 //创建MailMessage对象
4 MailMessage mailMsg = new MailMessage();
5 //设置收件人的邮件地址
6 mailMsg.To = this.tre.Text;
7 //设置发送者的邮件地址
8 mailMsg.From = this.tname.Text;
9 //设置邮件主题
10 mailMsg.Subject = this.tsubject.Text;
11 //设置邮件内容
12 mailMsg.Body = this.tcontent.Text;
13 //设置支持服务器验证
14 mailMsg.Fields.Add("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate", "1");
15 //设置用户名
16 mailMsg.Fields.Add("http://schemas.microsoft.com/cdo/configuration/sendusername", this.tname.Text);
17 //设置用户密码
18 mailMsg.Fields.Add("http://schemas.microsoft.com/cdo/configuration/sendpassword", this.tpass.Text);
19 try
20 {
21 //设置发送邮件服务器
22 SmtpMail.SmtpServer = dropserver.SelectedValue;
23 //发送邮件
24 SmtpMail.Send(mailMsg);
25 Response.Write("<script>alert('邮件发送成功!')</script>");
26 }
27 catch(Exception ex)
28 {
29 Response.Write("<script>alert('邮件发送失败!')</script>");
30 }
31 }

 

问题补充: 从2006年11月16日起,网易免费邮件系统(即:网易163/126新注册的邮箱用户)的POP3及SMTP服务将暂停开通不能开通pop3和smtp服务。 你可以选择其他邮箱服务器的smtp 或pop3服务 ——终于找到原因了 参考:http://space.cnblogs.com/question/11263/ 欢迎来讨论,领取分数
烈火★寒冰的主页 烈火★寒冰 | 菜鸟二级 | 园豆:210
提问于:2009-12-24 22:05
< >
分享
最佳答案
0

   这是因为现在网易不支持新注册的邮箱连接接smtp服务器去发邮件,你再用一个老邮箱试试,我以前就遇到过,不过还要注意,邮件不要连续发得太急太多,这样的网易可能会把帐号封掉。你可以每发一封邮件后让线程休眠一点时间。

收获园豆:10
X教授 | 菜鸟二级 |园豆:240 | 2009-12-24 22:18
有道理,这么有价值的账号,被封掉实在太可惜了
烈火★寒冰 | 园豆:210 (菜鸟二级) | 2009-12-25 00:52
其他回答(2)
0

被封掉的话,你正常登录一次,删掉一些邮件就解封啦

收获园豆:10
tyqing | 园豆:240 (菜鸟二级) | 2009-12-25 11:30
0

从2006年11月16日起,网易免费邮件系统(即:网易163/126新注册的邮箱用户)的POP3及SMTP服务将暂停开通不能开通pop3和smtp服务

你可以选择其他邮箱服务器的smtp 或pop3服务

persialee | 园豆:3217 (老鸟四级) | 2009-12-27 23:59

我有个同学他前两月,同时申请的两个账号,一个能发一个不能发。。。

支持(0) 反对(0) 鹰扬 | 园豆:200 (初学一级) | 2015-03-10 17:18
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册