System.Net.Mail.MailMessage mail = new System.Net.Mail.MailMessage();
        mail.To.Add(new MailAddress("XXXXXXXX"));
        mail.From = new MailAddress("XXXXXXXXXX", "XXX");
        mail.Subject = "邮件发送";
        mail.Body = "邮件发送成功!";        mail.BodyEncoding = System.Text.Encoding.UTF8;        System.Net.Mail.SmtpClient send = new System.Net.Mail.SmtpClient();
        send.Host = "XXXXXXXXXXXXXX";
        send.Port = 25;
        send.Credentials = new System.Net.NetworkCredential("XXXXXXXXXXXXXXX", "XXXXXXXXXXXXXX");
        send.DeliveryMethod = SmtpDeliveryMethod.Network;
        send.Send(mail);以上是用到得代码,本地测试没有问题,邮箱也收到邮件但是放到服务器却不成功,报错信息:“异常详细信息: System.Net.Mail.SmtpFailedRecipientException: 邮箱不可用。 服务器响应为: Local user only or Authentication mechanism”猜测是服务器问题,可找了好久找不到解决方法,请问该如何解决?

解决方案 »

  1.   

    服务器上没有装jmail组件。还有就是QQ邮箱也发送不成功。
      

  2.   

    http://blog.csdn.net/chenjianyong94/archive/2009/12/24/5068151.aspx
      

  3.   

    以下我测试通过的:
    //一:用自己的服务器作为邮件服务器时:
    //如出现:邮箱不可用。 服务器响应为: 5.7.1 Unable to relay for ***@gmail.com
    //解决办法如下:在IIS中,右击“默认SMTP虚拟服务器”,选择“属性”,切换到“访问”页,点击“中继”按钮,在弹出框中选择“仅以下列表除外”,确定。
    //二:用其它的邮件服务器发送,经测试大多数免费邮箱都不提供SMTP服务,用qq邮箱的就可以,方法:进入qq邮箱-->设置-->帐户-->开通POP3/IMAP/SMTP服务,即可用smtp.qq.com作为邮件服务器了,可用它来发送邮件using System;
    using System.Data;
    using System.Configuration;
    using System.Collections;
    using System.Web;
    using System.Web.Security;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    using System.Web.UI.WebControls.WebParts;
    using System.Web.UI.HtmlControls;
    using System.Net.Mail;public partial class _Default : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {    }    public void SendSMTPEMail(string strSmtpServer, string strFrom, string strFromPass, string strto, string strSubject, string strBody)
        {
            System.Net.Mail.SmtpClient client = new SmtpClient(strSmtpServer);
            client.UseDefaultCredentials = false;
            client.Credentials = new System.Net.NetworkCredential(strFrom, strFromPass);
            client.DeliveryMethod = SmtpDeliveryMethod.Network;
            System.Net.Mail.MailMessage message = new MailMessage(strFrom, strto, strSubject, strBody);
            message.BodyEncoding = System.Text.Encoding.UTF8;
            message.IsBodyHtml = true;
            client.Send(message);
        }
        //第一个参数是邮箱服务器
        //第二个参数发件人的帐号
        //第三个参数发件人密码
        //第四个参数收件人帐号
        //第五个参数主题
        //第六个参数内容.
        protected void Button1_Click(object sender, EventArgs e)
        {//发送邮件
            try
            {
                //SendSMTPEMail("nz.oicp.net", "[email protected]", "123", "[email protected]", "123", "用asp.net发送邮件,用自己的邮件服务器,测试成功");
                SendSMTPEMail("smtp.qq.com", "[email protected]", "123xxxxxxx", "[email protected]", "123", "用asp.net发送邮件,用qq的smtp.qq.com服务器,测试成功");        }
            catch (Exception er)
            {
                Label1.Text = er.Message;
            }
        }
    }
      

  4.   

    无法接收外部发来邮件,报错信息为:550 Local user only or Authentication mechanism这种情况一般是WinWebMail安装目录下的 domain.ini 文件损坏造成的,从备份数据中找到并替换该文件即可解决。
    http://hi.baidu.com/techlog/blog/item/4bf92afb54ec06819f51464d.html