作者:她能让你微笑衙 | 来源:互联网 | 2023-08-06 16:59
不允许使用邮箱名称。服务器响应为:authenticationisrequired,163smtp10,使用163SMTP发送邮件出现这个问题,代码如下:Mail
不允许使用邮箱名称。 服务器响应为:authentication is required,163 smtp10 ,使用163SMTP发送邮件出现这个问题,代码如下:
MailMessage mailMessage = new MailMessage();
SmtpClient client = new SmtpClient();
//收件人邮箱地址
//第一个参数是发信人邮件地址
//第二参数是发信人显示的名称
//第三个参数是 第二个参数所使用的编码,如果指定不正确,则对方收到后显示乱码
mailMessage.To.Add(new MailAddress(toMail, toMail.ToString(), Encoding.UTF8));
mailMessage.From = new MailAddress("邮箱名称");
//邮件标题编码
mailMessage.SubjectEncoding = Encoding.UTF8;
//邮件主题
mailMessage.Subject = title;
//邮件内容
mailMessage.Body = content;
//邮件内容编码
mailMessage.BodyEncoding = Encoding.UTF8;
//设置正文内容是否是包含Html的格式
mailMessage.IsBodyHtml = true;
//发送邮件的优先等级(有效值为High,Low,Normal)
mailMessage.Priority = MailPriority.Normal;
client.UseDefaultCredentials = true;
client.Credentials = new NetworkCredential("邮箱名称", "密码");
//client.Port = 25; // Gmail 使用 465 和 587 端口
client.Port = 25;
client.Host = "smtp.163.com"; // 如 smtp.163.com, smtp.gmail.com
client.EnableSsl = false; // 如果使用GMail,则需要设置为true
client.UseDefaultCredentials = false;
client.DeliveryMethod = SmtpDeliveryMethod.Network;
client.ServicePoint.MaxIdleTime = 0;
client.ServicePoint.ConnectionLimit = 1;
//client.SendCompleted += new SendCompletedEventHandler(client_SendCompleted);
//发送邮件
try
{
//client.SendAsync(mailMessage, mailMessage.To); //异步发送 (异步发送时页面上要加上Async="true" )
client.Send(mailMessage); //同步发送
}
catch (SmtpException e)
{
throw e;
}
56 个解决方案
发送的邮箱确认没问题吗?163邮箱的smtp开通了?能不能在outlook或其他工具中发送?
发送邮件是我一直用的163邮箱,肯定能发送啊。POP3/SMTP/IMAP 这三个都开通了的。
1.这句删除试试
client.UseDefaultCredentials = false;
2.client.Credentials = new NetworkCredential("邮箱名称", "密码");
邮箱名称有带后缀吗?
client.UseDefaultCredentials = false;
应该是这句的原因,你的邮箱应该是需要身份验证的。
跟代码没有多大关系。网易2010年以后申请的邮箱,大部分已经不支持外部调用smtp了。只有一小部分老邮箱才支持
@11楼,关键是同样的方法,我前一个月用同样的邮箱测试还是能发送的,现在我不能发送了。
你代码中有两句:
client.UseDefaultCredentials = true;
.....
client.UseDefaultCredentials = false;
你需要将第二句删除掉。
client.UseDefaultCredentials = true;true是设置为需要身份验证的,而你的代码,下面却设置为false,应该就是这个原因报错的。
你按照我那个写的来就好,把一些多余的条件都去除掉。我实验了几十次才得出的结论。一开始我也是设置N多东西,结果怎么都发送不了。
@20# 会不会是你那个邮箱发送的数量到达了上限?你申请一个新的邮箱试试?
@22# 没有达到上限的,我自己手动在163里面发是可以发的。
client.Credentials = new NetworkCredential("邮箱名称", "密码");
这里不要@163.com,试下。
今天继续坐等高手来解决这个问题,这个问题没有解决,都吃不下饭了。
你可以试下能不能在outlook或者foxmail上面能不能发送接收正常使用,不是在网站上直接使用,有可能是你的邮箱被锁死了,你或者换个qq邮箱或者企业邮箱试试,就知道是代码的问题还是邮箱的问题。
以前遇到过是163邮箱不支持smtp问题,白白调试半天。后来换了个老的163邮箱就好了
client.UseDefaultCredentials = true;
邮箱要求身份验证。
还有如果你用的是163域名邮箱的话,用户名要全称
比如 admin@singoocms.com
smtp是 smpt.ym.163.com
对了。还有些邮箱新加了些什么授权码,可以尝试先关闭,再打开,其中会有一些操作
重新开启smtp后再试试,也许就可以了!
我也测试了好久 最终得到解决方案 就把他贴在这里了 希望遇到此问题的朋友们能得到解决方案。
“登陆邮箱后台关闭客户端授权密码”就好啦。
发送邮件 最好不要用163邮箱 很多时候都会把163邮箱发送的邮件当成垃圾邮件 你可以去了解下163邮箱的发展史
楼主有人说过了,这两处这个语句删除即可:
client.UseDefaultCredentials = false;
楼主不要再深究了。我也遇到同样的问题,今天弄了半天。最后还是重新注册了一个sina的邮箱开通smtp。以前的代码又能用了。
163,126最近启用了客户端授权码,
用客户端连接,不能再用密码,
需用授权码。
我也碰到此问题,改为授权码即可。
这跟代码无关..是运营商搞的鬼...
代码是一样的代码..但是针对不同的服务商.出现的问题也不一样.. 所以尽量不要用这种"第三方"的个人邮箱来发送邮件
但是我们常常又要实现这样的功能.比如"注册激活","密码找回"等操作.这样要如何解决呢?
我给你2个解决方案.(都得有域名)
1`自己假设邮件服务器网上有很多开源的(hmailserver我用了这个)很傻的操作 配置后添加账号并且在域名解析设置下 就可以了.
这个有一个问题 就是有的服务商设置了拦截 你可以找管理员进行IP白名单(把IP告诉他就行了)
2`使用企业邮箱.(阿里云我是用过).自己的域名下设置企业邮箱(免费),.然后同样的 而已是添加用户 .代码也是一样的.
上面2个办法都可以解决问题.并且都比较稳定..跟你现在不同的是 你用你自己的 而不是"第三方"的.
$mail->Password = 授权密码 【非邮箱登录密码】
把邮箱登陆密码改为授权码,测试成功 43楼正解,谢谢啦。网易真坑啊。
发送邮件的程序用的账号密码错误了,确认账号密码后重新再试试吧。
不允许使用邮箱名称。 服务器响应为:authentication is required,163 smtp11,D8CowEBpM0a+4QBXZ0HIAA--.13073S2 1459675583 我的改成授权码也不行
我也是改成了授权码之后也无法运行,想请教一下怎么解决,请问你是怎么解决的?@qq_35129413
想请问一下,我改了授权码之后变成了:事务失败。 服务器响应为:DT:SPM 163 smtp10,DsCowAA3nzvpa5hXkBS9Aw--.23331S2 1469606890,please see http://mail.163.com/help/help_spam_16.htm?ip=218.18.156.63&hostid=smtp10&time=1469606890
这个有人遇到过吗?