电子邮件不发送,没有错误?

时间:2013-12-26 17:47:43

标签: c# asp.net email

我正在使用这个简单的代码尝试发送电子邮件:

    try
    {
        MailMessage newMail = new MailMessage();
        newMail.To.Add("me@mydomain.com");
        newMail.Subject = "test";
        newMail.Body = "test";
        newMail.From = new MailAddress("from@mydomain.com", "from");
        newMail.IsBodyHtml = true;

        SmtpClient SmtpSender = new SmtpClient();
        SmtpSender.Send(newMail);
    }
    catch (Exception ex)
    {
        MessageBox.Show(ex.Message);
    }

以及我的web.config文件中的以下代码:

<system.net>
<mailSettings>
  <smtp>
    <network host="localhost" userName="me@mydomain.com" password="password" defaultCredentials="true"/>
  </smtp>
</mailSettings>

我运行该页面并完成没有错误,但没有发送电子邮件。我做错了什么?

编辑:我已经根据我看过的很多示例更新了代码,现在正在使用名为hMailServer的本地SMTP客户端。我已经在ASP.Net之外测试了我的hMailServer,它确实发送了电子邮件。但是,使用上面的新代码仍然不起作用,也不会抛出任何异常。

1 个答案:

答案 0 :(得分:1)

如果您在其他地方托管您的电子邮件表单,您可能需要“在医生处”表格上发送电子邮件。

例如,GoDaddy将阻止来自他们认为是高垃圾邮件源(如GMail,Hotmail和Yahoo! Mail)的某些域的电子邮件。

要解决此问题,请从源自您域名的电子邮件地址发送邮件,最好是假邮件,这样您就不会开始收到大量垃圾邮件:

private const string mailer = "no-reply@yourDomain.com";

继续并在您的网站管理员地址中进行操作,以获得良好的衡量标准:

private const string webmaster = "yourEmail@yourDomain.com";

构建电子邮件时,应在回复字段(来自以下代码中的txtEmail.Text)中指定联系人的电子邮件地址:

lblError.Text = null;
using (var email = new System.Net.Mail.MailMessage(
  new MailAddress(mailer), new MailAddress(webmaster)) {
  email.ReplyTo = txtEmail.Text; // this comes off of your contact form
  string strHtmlBody =
    "<html><body style=\"background-color:#cccccc\">" +
    txtSubject.Text +
    "</body></html>";
  email.Subject = "Website Contact";
  email.Body = strHtmlBody;
  email.IsBodyHtml = true;
  var server = new SmtpClient("relay-hosting.secureserver.net");
  try {
    server.Send(email);
  } catch (Exception err) {
    lblError.Text = err.Message;
  }
}