【问题标题】:Need help setting up SMTP需要帮助设置 SMTP
【发布时间】:2010-12-08 04:52:09
【问题描述】:

我遇到了一个奇怪的问题,我不知道为什么。

我的 webconfig 中有这个

  <add key="SMTP" value="mail.reliablesite.net"/>
    <add key="Email" value="Email"/>
    <add key="EMAIL_PASSWORD" value="Password"/>
    <add key="FROM_PORT" value="2525"/>

现在,当我通过 localhost 测试 smtp 时,一切正常并发送我的 smtp 和所有内容。我上传了我的 webconfig 以及所有其他文件,我尝试测试我的 smtp,但没有发送任何消息。完全相同的代码和所有内容。

所以我不明白为什么这不起作用。

这就像我的代码的精简版。

public class MyTestController : Controller
    {
        //
        // GET: /MyTest/

        public void Index()
        {
            MailMessage mail = new MailMessage();
            mail.From = new MailAddress("From");
            mail.To.Add("To");
            mail.Subject = "subject";
            mail.IsBodyHtml = true;
            mail.Body = "body";

            NetworkCredential credential = new NetworkCredential("EmailFromMyHostingSite", "Password");

            SmtpClient smtp = new SmtpClient();
            smtp.Host = "mail.reliablesite.net";
            smtp.Port = 2525;
            smtp.Credentials = credential;

            smtp.Send(mail);
            mail.Dispose();

        }

    }

【问题讨论】:

  • 您上传的服务器是否阻塞了任何端口?
  • mail.reliablesite.net 是什么服务器,您从哪个服务器发送电子邮件?正如查理布朗所说,确保从您的网络服务器到邮件服务器的端口(2525??)是开放的,并且没有被您的托管服务提供商阻止。
  • support.reliablesite.net/KB/a93/…mail.reliablesite.net 是我的托管服务器 smtp 服务器

标签: c# .net asp.net-mvc smtp


【解决方案1】:

为了清楚起见,.Port 属性指的是邮件服务器的端口,而不是您发送电子邮件的端口。

现在,话虽如此,mail.reliablesite.net 确实在端口 2525 上运行了 SMTP 服务(我刚刚检查过,您可以通过 telnet 访问它,然后得到欢迎响应)。

下一个问题是“你怎么知道电子邮件没有发送?”你没有提到任何关于例外的事情。你是说它只是没有出现在你的收件箱中吗?如果是这样,请检查您的垃圾邮件文件夹。

如果这不起作用,那么我建议为 System.Net.Mail 启用日志记录,并检查日志文件。

【讨论】:

  • 好吧,据我所知,我没有遇到异常。首先,我使用 Elmah 记录任何未处理的期望但未记录。我也没有在 smtp 发送的页面上看到任何异常。我检查了垃圾邮件文件夹,没有收到我的邮件。那么我该如何做这个 System.Net.Mail 日志记录呢?谢谢
  • 您好,我尝试添加您需要的 web.config 开关,但 cmets 部分不允许使用足够的字符。但是,我在这里写了一篇关于它的帖子:systemnetmail.com/faq/4.10.aspx
【解决方案2】:
  1. 我建议使用 System.Net 设置而不是 appsettings。这可确保您在调用 SMTPClient 上的任何方法或属性时自动获取设置。

  2. 现在 - 正如其他人指出的那样,25 是 SMTP 端口。有时,SMTP 被配置为使用服务器上的特定端口,您需要在配置文件中进行配置。您可以尝试使用以下代码通过您的代码中的 GMAIL 帐户发送邮件。

使用 try catch 包装 smtp.send() 并检查您是否收到任何异常。

【讨论】:

    【解决方案3】:

    由于 SMTP 默认端口是 25,您可能只需要在配置中更新此信息。

    【讨论】:

      猜你喜欢
      • 2010-10-14
      • 2021-12-13
      • 1970-01-01
      • 1970-01-01
      • 2012-02-14
      • 1970-01-01
      • 2016-12-07
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多