簡體   English   中英

無法使用C#和gmail從生產服務器發送電子郵件

[英]Can not send email from production server using c# and gmail

我已經在我的開發環境(Windows 7,visual studio 2010)上測試了這段代碼

public static bool SendMail(string to, string subject, string message)
{
    try
    {
        NetworkCredential loginInfo = new NetworkCredential("mylogin","mypassowrd");
        MailMessage msg = new MailMessage();
        msg.From = new MailAddress("mylogin");
        msg.To.Add(new MailAddress(to));
        msg.Subject = subject;
        msg.Body = message;
        msg.IsBodyHtml = true;
        SmtpClient client = new SmtpClient("smtp.gmail.com",587);
        client.EnableSsl = true;
        client.UseDefaultCredentials = false;
        client.Credentials = loginInfo;
        client.Send(msg);

        return true;
    }
    catch (Exception)
    {
        return false;
    }
}

但是,當我將其移至生產服務器(Windows Server 2008)時,它無法正常工作。 我最初的想法是防火牆阻塞了端口,因此我創建了一個出站規則以使用TCP協議打開端口587。 機器人這不起作用。

任何見解將不勝感激。

謝謝

您是否確認可以從服務器上的其他工具到達smtp.gmail.com上的端口587? 在生產環境中,有許多可以過濾端口的地方 - 包括網絡中的防火牆和路由器,而不僅僅是服務器上的防火牆。

驗證應用程序的網絡連接的一種方法是嘗試在應用程序中發送郵件,同時在服務器的控制台上運行命令netstat -n 如果與smtp.gmail.com的連接被卡住為SYN_SENT則不建立TCP連接。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM