ASP.net SMTP连接错误

时间:2009-05-26 16:40:37

标签: asp.net smtp

以下代码在发生错误后让我输出错误。

        MailMessage Enveloppe = new MailMessage();

        //emails is an array of strings
        foreach ( string email in emails )
            Enveloppe.To.Add(email);

        //Setup message parameters
        Enveloppe.Subject = "Documentation";
        Enveloppe.Body = "Infinitelycoolbodyhere"
        Enveloppe.From = new MailAddress("mrzombie@stuff", "Myname");

        //files is an array of strings
        foreach ( string filename in files ) { 
            //Add attachments
            Enveloppe.Attachments.Add(new Attachment(new System.Net.WebClient().OpenRead(filename),filename.Substring(filename.LastIndexOf('/'))));
        }

        //Create the smtp client, and let it do its job
        SmtpClient Mailman = new SmtpClient("mysmtphost");
        Mailman.EnableSsl = true;
        Mailman.Port = 465;
        Mailman.DeliveryMethod = SmtpDeliveryMethod.Network;
        Mailman.Credentials = new System.Net.NetworkCredential("usernamehere", "passwordhere");
        Mailman.Send(Enveloppe);

碰巧它告诉我我的操作超时,或者“连接尝试失败,因为连接方在一段时间后没有正确响应,或者由于连接主机未能响应而建立连接失败”

我很难过,我看不出哪一部分我做错了

更新:我似乎无法从Telnet连接到服务器,充其量我连接我的笔记本电脑(在ubuntu下),但我从来没有得到“200”响应。在Windows工作站下,我得到一个永久的空白telnet窗口。

我可以使用Thunderbird在指定的服务器上发送/接收电子邮件,而不会有任何问题。

4 个答案:

答案 0 :(得分:1)

终于找到了罪魁祸首 - 不知怎的,连接被挂在托管公司给我的“假设正确”的smtp服务器和实际的smtp服务器之间。我刚刚将mail.domain.com的地址更改为smtp.hostingdomain.com并修复了所有内容。

这只是我讨厌的那些“什么鬼”的时刻之一。因此,我不得不放弃基于应用程序的邮件发送功能,但最后我的老板和我决定我们在某处托管文件,并在电子邮件中包含链接,而不是附加附加文件到邮件。

所以,是的,这并没有真正回答这个问题,而是对那些考虑解决方案的人,但你可能想把你想发送的文件放在一个可以从外部访问的地方,而不是包含链接。那里。

答案 1 :(得分:0)

该SMTP服务器是否在465上启动并运行,是否支持SSL?

答案 2 :(得分:0)

在尝试与SMTP服务器通信时听起来像是出了什么问题(哈哈,没有狗屎!)。

我假设你在Windows上,所以去开始 - >运行 - > 'telnet mysmtphost 465'并查看你在控制台中得到的回复。

你看到这样的事吗?

Connected to mysmtphost.
Escape character is '^]'.
220 mysmtphost

答案 3 :(得分:0)

尝试为System.Net.Mail启用跟踪(看起来您正在使用SNM)。为此,您需要将以下内容添加到.config文件中。

<configuration>
  <system.diagnostics>
    <trace autoflush="true" />

    <sources>

      <source name="System.Net" >
        <listeners>
          <add name="MyTraceFile"/>
        </listeners>
      </source>

      <source name="System.Net.Sockets">
        <listeners>
          <add name="MyTraceFile"/>
        </listeners>
      </source>

    </sources>


    <sharedListeners>
      <add
        name="MyTraceFile"
        type="System.Diagnostics.TextWriterTraceListener"
        initializeData="System.Net.trace.log"                />
    </sharedListeners>

    <switches>
      <add name="System.Net" value="Verbose" />
      <add name="System.Net.Sockets" value="Verbose" />
    </switches>

希望这至少应该告诉你发生了什么。

我在这里有更多信息,关于期待什么: http://systemnetmail.com/faq/4.10.aspx