我一直在尝试使用以下代码将邮件从Gmail帐户发送到Gmail帐户。
using (MailMessage mm = new MailMessage(txtEmail.Text, txtTo.Text))
{
mm.Subject = txtSubject.Text;
mm.Body = txtBody.Text;
if (fuAttachment.HasFile)
{
string FileName = Path.GetFileName(fuAttachment.PostedFile.FileName);
mm.Attachments.Add(new Attachment(fuAttachment.PostedFile.InputStream, FileName));
}
mm.IsBodyHtml = false;
SmtpClient smtp = new SmtpClient();
smtp.Host = "smtp.gmail.com";
smtp.EnableSsl = true;
NetworkCredential NetworkCred = new NetworkCredential(txtEmail.Text, txtPassword.Text);
smtp.UseDefaultCredentials = true;
smtp.Credentials = NetworkCred;
smtp.Port = 587;
smtp.Send(mm);
ClientScript.RegisterStartupScript(GetType(), "alert", "alert('Email sent.');", true);
}
执行到达“smtp.Send(mm)”后,浏览器说等待,2分钟后我得到“发送电子邮件失败”的异常
以下错误消息
连接尝试失败,因为连接方在一段时间后未正确响应,或已建立的连接失败,因为已连接的主机无法响应。 。。 :587“(某些IP)
我已经搜索了很多,但还没有找到解决方案。请帮我解决这个问题。
谢谢。
答案 0 :(得分:0)
首先,我认为你应该使用
UseDefaultCredentials = false;
和
smtp.DeliveryMethod = SmtpDeliveryMethod.Network
答案 1 :(得分:0)
试试这个。
public static string SendMail(string stHtmlBody, string stSubject, string stToEmailAddresses)
{
string stReturnText = string.Empty;
try
{
if (!string.IsNullOrEmpty(stToEmailAddresses))
{
//Set SmtpClient to send Email
string stFromUserName = "fromusername";
string stFromPassword ="frompassword";
int inPort = Convert.ToInt32(587);
string stHost = "smtp.gmail.com";
bool btIsSSL =true;
MailAddress to = new MailAddress(stToEmailAddresses);
MailAddress from = new MailAddress("\"" + "Title" + "\" " + stFromUserName);
MailMessage objEmail = new MailMessage(from, to);
objEmail.Subject = stSubject;
objEmail.Body = stHtmlBody.ToString();
objEmail.IsBodyHtml = true;
objEmail.Priority = MailPriority.High;
SmtpClient client = new SmtpClient();
System.Net.NetworkCredential auth = new System.Net.NetworkCredential(stFromUserName, stFromPassword);
client.Host = stHost;
client.Port = inPort;
client.UseDefaultCredentials = false;
client.Credentials = auth;
client.EnableSsl = btIsSSL;
client.Send(objEmail);
return stReturnText;
}
}
catch (Exception ex)
{
}
return stReturnText;
}
答案 2 :(得分:-1)
我有类似的尝试,但使用Java。经过大量的搜索,我没有成功。然后我用了雅虎! SMTP,非常容易。也许你可以试试。