可以在本地发送电子邮件,但不能从远程服务器发送电子邮件

问题描述 投票:0回答:3

我正在通过以下功能发送电子邮件,虽然当我从本地服务器运行它时它工作正常,但当我远程运行它时它会失败。可能是什么原因导致这个问题?

private void SendEmail()
{
    try
    {
        MailMessage message = new MailMessage();
        SmtpClient client = new SmtpClient("smtp.gmail.com",587);
        client.UseDefaultCredentials = false;
        client.Credentials = loginInfo;
        NetworkCredential loginInfo = new NetworkCredential("[email protected]", "xxxx");
        message.From = new MailAddress("[email protected]", "xx");
        message.To.Add(new MailAddress("[email protected]","Mail"));
        message.IsBodyHtml = true ;
        string emailContent = "ICHE 2010 - Abstract Received <br><br>Title: " + Abstract_Title.Text + "<br><br>Author: " + TxtAuthor_FirstName.Text + "_" + TxtAuthor_LastName.Text + "<br><br>Abstract in pdf format attached with this email. <br><br> ICHE2010 Website";
        message.Body = emailContent;
        message.Subject = "ICHE 2010 - Abstract Received";
        string FileName = Server.MapPath(Request.ApplicationPath + "\\AbstractPdfs" + "\\" + abstractBO.AbstractFileNameWithTicks);
        Attachment attachmentpdf = new System.Net.Mail.Attachment(FileName);
        message.Attachments.Add(attachmentpdf);
        client.EnableSsl = true;
        client.Send(message);
    }
    catch (SmtpException smtpex)
    {
        throw smtpex;
    }
    catch (Exception ex)
    {
        throw ex;
    }
}
c#
3个回答
1
投票

可能是防火墙阻止您的应用程序使用该端口发送电子邮件。或者您的远程服务器可能没有互联网连接。造成这种情况的原因可能有很多。请详细解释一下。


0
投票

您需要检查两件事:

  • 从您的代码中检查端口 587 是否未被阻止或已启用
  • 还可以尝试打开端口 25,这是 SMTP 传统上使用的端口

0
投票

我遇到了同样的问题,我使用 MailKit 来发送电子邮件,这实际上对我有用。您可以使用 MailKit 在 C# 中轻松发送电子邮件。

© www.soinside.com 2019 - 2024. All rights reserved.