码迷,mobileinhere.cn
首页 > web开发 > 详细

.net使用163smtp发送邮件时错误:邮箱不可用. has no permission解决方法

时间:2016-07-04 18:30:23      阅读:54543      评论:0      收藏:0      [点我收藏+]

标签:

c#实现简单邮件发送代码如下

        public static void sendasync(string emailto, string subject, string mailbody)
        {
            var msg = new mailmessage();
            msg.to.add(emailto);
            
            msg.from = new mailaddress(_usernameforemail, "显示的发件人名称", system.text.encoding.utf8);
           msg.subject = subject;邮件标题 
            msg.subjectencoding = system.text.encoding.utf8;
            msg.body = mailbody;邮件内容 
            msg.bodyencoding = system.text.encoding.utf8;
            msg.isbodyhtml = false;
            msg.priority = mailpriority.high;邮件优先级 
            
            var client = new smtpclient();
            client.usedefaultcredentials = false;
            client.credentials = new networkcredential(_usernameforemail, _passwordforemail);
            
            client.host = _smtphost;
            try
            {
                简单一点儿可以client.send(msg); 
                client.send(msg);
                task.factory.startnew(() =>
                {
                    client.send(msg);
                });
                client.sendasync(msg, userstate);
                
            }
            catch (smtpexception ex)
            {
         log.error(ex);
throw ex; } }

当传入发送邮箱正确的用户名和密码时,总是收到到:邮箱不可用. has no permission 这样的错误,英文错误为:mailbox unavailable. the server response was: user has no permission。

其实我们用.net发送邮件时相当于自定义客户端根据用户名和密码进行登录,然后使用smtp服务发送邮件。但新注册的163邮件默认是不开启客户端授权验证的(对自定的邮箱大师客户端默认开启),

因此登录总是会被拒绝,验证没有权限。解决办法是进入163邮箱,进入邮箱中心——客户端授权密码,选择开启即可,如下截图

 

技术分享

设置完毕后,在代码中用使用客户端授权密码代替原始的邮箱密码,这样就可以正确的发送邮件了。

 

.net使用163smtp发送邮件时错误:邮箱不可用. has no permission解决方法

标签:

原文地址:www.cnblogs.com/oneheart/p/5641215.html

(3)
(5)
   
举报
评论 一句话评论(0
0条  
登录后才能评论!
2014 mobileinhere.cn 版权所有 京icp备13008772号-2
华人娱乐注册