【问题标题】:asp.net send mail problemasp.net发送邮件问题
【发布时间】:2011-03-12 04:07:24
【问题描述】:

我尝试从我的应用程序发送电子邮件。一切似乎都很好,邮件信息、凭据等。

当我调试代码时,它不会捕获异常并且不会发送电子邮件。服务器上也没有邮件队列。没有错误消息。

msgObj.Subject = this.Subject;        
    msgObj.From = new MailAddress(this.From , this.Display_Name);//
    msgObj.Body = this.Message;
    msgObj.IsBodyHtml = true;

    SmtpClient client = new SmtpClient(this.SMTP_Server,25);
                client.Credentials = new System.Net.NetworkCredential(SMTP_User + "@doping.com.tr", SMTP_Password);


                try
                {
                    client.Send(msgObj);
                    return true;
                }
                catch (Exception ex)
                {
                    ex.ToString();
                    return false;
                } 

可能是什么问题?

谢谢。

【问题讨论】:

  • 应用程序事件日志中是否有任何帮助?
  • 还要检查收件人地址/发件人地址是否包含有效的电子邮件 ID。某些邮件服务器可能不会对这些执行验证,因此发送可能会成功,但邮件仍不会到达收件人。如果这仍然不起作用,请尝试使用 System.Net.Mail 命名空间而不是 System.Web.Mail,因为后者已被标记为过时。
  • 应用程序事件日志中没有错误。

标签: c# .net asp.net


【解决方案1】:

SmtpClient 的默认设置可以使用System.Net 配置命名空间进行配置,例如:

<configuration>
  <system.net>
    <mailSettings>
      <smtp deliveryMethod="network" from="ben@contoso.com">
        <network host="localhost" port="25" defaultCredentials="true" />
      </smtp>
    </mailSettings>
  </system.net>
</configuration>

请参阅<smtp> Element (Network Settings) topic 了解更多信息。

【讨论】:

    【解决方案2】:

    检查端口。是否支持您使用的端口 25。还要检查 SSL。如果还是不行。试试下面的代码。

     /// <summary>
    /// Transmit an email message
    /// </summary>
    /// <param name="from">Senders Name </param>
    /// <param name="fromPerson">Sender Email Address</param>
    /// <param name="body">The Email Message Body</param>
    /// <returns>Status Message as String</returns>
    public static void SendMail(string fromEmail, string fromName, string body)
    {
    
        try
        {
    
            using (MailMessage mail = new MailMessage())
            {
                mail.To.Add("abc@gmail.com");
                mail.From = new MailAddress(fromEmail, fromName);
                mail.Subject = "Report ";
                mail.SubjectEncoding = System.Text.Encoding.UTF8;
                mail.Body = body;
                mail.BodyEncoding = System.Text.Encoding.UTF8;
                mail.Priority = MailPriority.High;
                SmtpClient smtp = new SmtpClient();
                smtp.Host = global::ProjectName.Properties.Settings.Default.Host;
                smtp.Port = global::ProjectName.Properties.Settings.Default.Port;
    
                if (smtp.Port == 587)
                {
                    smtp.EnableSsl = true;
                }
                string userName = global::ProjectName.Properties.Settings.Default.UserName;
                string password = global::ProjectName.Properties.Settings.Default.Password;
                smtp.Credentials = new NetworkCredential(userName, password);
                smtp.Send(mail);
    
            }
        }
    
        catch (SmtpException smEx)
        {
            LogError(smEx.Message, smEx.StackTrace);
        }
    }
    

    我在这里使用项目的设置文件并从那里检索值。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-12-08
      • 1970-01-01
      • 1970-01-01
      • 2011-09-07
      • 2017-06-05
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多