none
总是显示"发送失败" RRS feed

  • 问题

  •     我是调用System.Net.Mail的功能,但是每次都是显示"发送失败"
        /// <summary>
        /// 邮件发送
        /// </summary>
        /// <param name="username">登录名</param>
        /// <param name="pwd">登录密码</param>
        /// <param name="server">smtp协议</param>
        /// <param name="fromemail">发送者邮件</param>
        /// <param name="tomail">接受者邮件</param>
        private void mailsend(string username,string pwd,string server,string fromemail,string tomail)
        {
            System.Net.Mail.SmtpClient smtp = new System.Net.Mail.SmtpClient();
            smtp.Host = server;
            MailMessage mail = new MailMessage();
            mail.From = new MailAddress(fromemail);
            mail.To.Add(new MailAddress(tomail));
            mail.Subject = "测试C#邮件发送";
            mail.Body = "看看C#邮件发送的功能怎样";
            mail.IsBodyHtml = true;
            smtp.Port = 25;
            smtp.Timeout = int.MaxValue;
            smtp.EnableSsl = false;
            smtp.Credentials = new System.Net.NetworkCredential(username, pwd);
            smtp.Send(mail);
            Page.ClientScript.RegisterClientScriptBlock(GetType(), "", "<script>alert('邮件发送成功');</script>");
        }


    请高手们帮我检查一下是哪方面出问题啊?本人是用新浪的邮箱“smtp.sina.com”,用户名密码都是对的,请问是编码问题吗?
    2009年2月18日 8:33

答案

  • 经测试,以下代码发送成功。注意调用的写法。如果在很短的时间内发送很多邮件,也可能会被怀疑盗用。

    private void mailsend(string username, string pwd, string server, string fromemail, string tomail)  
    {  
      System.Net.Mail.SmtpClient smtp = new System.Net.Mail.SmtpClient();  
      smtp.Host = server;  
      System.Net.Mail.MailMessage mail = new System.Net.Mail.MailMessage();  
      mail.From = new System.Net.Mail.MailAddress(fromemail);  
      mail.To.Add(new System.Net.Mail.MailAddress(tomail));  
      mail.Subject = "测试C#邮件发送";  
      mail.Body = "看看C#邮件发送的功能怎样";  
      mail.IsBodyHtml = true;  
      smtp.Timeout = int.MaxValue;  
      smtp.EnableSsl = false;  
      smtp.UseDefaultCredentials = false;  
      smtp.Credentials = new System.Net.NetworkCredential(username, pwd);  
      smtp.Send(mail);  
        
    }  
     
     
    protected void Page_Load(object sender, EventArgs e)  
    {  
      mailsend("xxxx", "xxxx信箱的密码", "smtp.sina.com", "xxxx@sina.com", "amxh@21cn.com");  

    孟宪会
    2009年2月19日 1:27
    版主

全部回复

  • 这些免费的一般都做了限制
    孟宪会
    2009年2月18日 10:07
    版主
  • 关于如何发送服务器可以接受的邮件的问题,联系你的邮件服务器的管理员。
    MSMVP VC++
    2009年2月18日 18:01
    版主
  • 经测试,以下代码发送成功。注意调用的写法。如果在很短的时间内发送很多邮件,也可能会被怀疑盗用。

    private void mailsend(string username, string pwd, string server, string fromemail, string tomail)  
    {  
      System.Net.Mail.SmtpClient smtp = new System.Net.Mail.SmtpClient();  
      smtp.Host = server;  
      System.Net.Mail.MailMessage mail = new System.Net.Mail.MailMessage();  
      mail.From = new System.Net.Mail.MailAddress(fromemail);  
      mail.To.Add(new System.Net.Mail.MailAddress(tomail));  
      mail.Subject = "测试C#邮件发送";  
      mail.Body = "看看C#邮件发送的功能怎样";  
      mail.IsBodyHtml = true;  
      smtp.Timeout = int.MaxValue;  
      smtp.EnableSsl = false;  
      smtp.UseDefaultCredentials = false;  
      smtp.Credentials = new System.Net.NetworkCredential(username, pwd);  
      smtp.Send(mail);  
        
    }  
     
     
    protected void Page_Load(object sender, EventArgs e)  
    {  
      mailsend("xxxx", "xxxx信箱的密码", "smtp.sina.com", "xxxx@sina.com", "amxh@21cn.com");  

    孟宪会
    2009年2月19日 1:27
    版主