我正在通过以下功能发送电子邮件,虽然当我从本地服务器运行它时它工作正常,但当我远程运行它时它会失败。可能是什么原因导致这个问题?
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;
}
}
可能是防火墙阻止您的应用程序使用该端口发送电子邮件。或者您的远程服务器可能没有互联网连接。造成这种情况的原因可能有很多。请详细解释一下。
您需要检查两件事:
我遇到了同样的问题,我使用 MailKit 来发送电子邮件,这实际上对我有用。您可以使用 MailKit 在 C# 中轻松发送电子邮件。