![](/img/trans.png)
[英]sending the email using gmail smtp - unable to connect the remote server
[英]Sending email using gmail smtp server
我一直在嘗試使用以下代碼將郵件從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)”后,瀏覽器說等待,兩分鍾后我得到一個異常,說“發送電子郵件失敗”
和以下錯誤消息
連接嘗試失敗是因為一段時間后連接方未正確響應,或者連接建立因連接主機未響應而失敗。 。 。 :587“(某些IP)
我為此進行了大量搜索,但沒有找到解決方案。 請幫我解決這個問題。
謝謝。
首先,我認為您應該使用
UseDefaultCredentials = false;
和
smtp.DeliveryMethod = SmtpDeliveryMethod.Network
您還需要允許安全性較低的應用訪問您的帳戶
試試這個。
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;
}
我做了類似的嘗試,但是使用Java。 經過大量搜索,我這樣做並不成功。 然后,我使用了Yahoo! SMTP,非常容易使用。 也許您可以嘗試一下。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.