自己写了个发邮件的系统,原来调试好好的。今天调试时说:"不允许使用邮箱名称。 服务器响应为: You are not authorized to send mail, au..."
大家谁遇到过这样的情况,指导一下。以下是报错的代码:
Class Mail
{
...........
...........
 public bool Send(string subject,string message)
        {            try
            {
                
                mailMessage.From = new MailAddress(adminEmail);
                
                if (replyTo != null)
                {
                    if (replyTo != "")
                    {
                        mailMessage.ReplyTo = new MailAddress(replyTo);
                    }
                }
                mailMessage.Sender = mailMessage.From;
                if(flag)
                {
                    mailMessage.IsBodyHtml = true;
                }
                else
                {
                    mailMessage.IsBodyHtml = false;
                }
                mailMessage.Subject = subject;
                mailMessage.Body = message;
                SmtpClient server = new SmtpClient(smtpServer);
                if (port > -1)
                {
                    server.Port = port;
                }
                server.Credentials = new System.Net.NetworkCredential(userName,password);                server.Send(mailMessage);                exception = "Mail send success!";                return true;
            }
            catch(Exception e)
            {
                exception = e.Message;
                return false;
            }
        }
}

解决方案 »

  1.   

    server.Credentials = new System.Net.NetworkCredential(userName,password);
    我已经提交验证了
      

  2.   

    System.Net.Mail.SmtpClient client = new System.Net.Mail.SmtpClient("smtp服务器");
                client.UseDefaultCredentials = true;//设置为发送认证消息
                client.Credentials = new System.Net.NetworkCredential("用户名", "密码");//认证消息
                System.Net.Mail.MailMessage mess = new System.Net.Mail.MailMessage();
                mess.From = new System.Net.Mail.MailAddress("发信人地址", "要显示的发信人的名称");
                mess.To.Add(new System.Net.Mail.MailAddress("收信人地址", "要显示的收信人的名称"));
                mess.Subject = "主题";
                mess.Body = "正文";
                try
                {
                    client.Send(mess);
                    MessageBox.Show("发送成功完成");
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.Message);
                }注意:
    client.UseDefaultCredentials = true 此属性的设置一定要放在client.Credentials = new System.Net.NetworkCredential("用户名", "密码");之前,否则就无法发送成功.