[英]How to send email in asp.net using c# to any email address using gmail address
我正在嘗試使用c#通過asp.net中的應用程序發送電子郵件。 我進行了很多搜索,大多數情況下在asp.net中找到以下代碼使用c#發送電子郵件:
MailMessage objEmail = new MailMessage();
objEmail.From = new MailAddress(txtFrom.Text);
objEmail.To.Add(txtTo.Text);
objEmail.CC.Add(txtCC.Text);
objEmail.Bcc.Add(txtBCC.Text);
objEmail.Subject = txtSubject.Text;
try
{
SmtpClient mail = new SmtpClient();
mail.EnableSsl = true;
mail.DeliveryMethod = SmtpDeliveryMethod.Network;
mail.Credentials = new NetworkCredential(txtFrom.Text, txtPassword.Text);
mail.Timeout = 20000;
mail.UseDefaultCredentials = false;
mail.Host = "smtp.gmail.com";
mail.Port = 587;
mail.Send(objEmail);
Response.Write("Your Email has been sent sucessfully - Thank You");
}
catch (Exception exc)
{
Response.Write("Send failure due to : <br />" + exc.ToString());
}
但是我經常收到以下錯誤:
“” System.Net.Mail.SmtpException:發送郵件失敗。---> System.IO.IOException:無法從傳輸連接中讀取數據:現有連接被遠程主機強行關閉。---> System.Net .Sockets.SocketException:System.Net.Sockets.NetworkStream.Read上的遠程主機強制關閉了現有連接。 (字節[]緩沖區,Int32偏移量,整數32大小)---內部異常堆棧跟蹤的結尾---在System.Net.Sockets.NetworkStream.Read(字節[]緩沖區,Int32偏移量,整數32大小)在System.Net .DelegatedStream.Read(Byte。]緩沖區,在System.Net.BufferedReadStream.Read(Byte []緩沖區,Int32偏移,Int32計數)在System.Net.Mail.SmtpReplyReaderFactory.ReadLines(SmtpReplyReader調用者, System.Net.Mail.SmtpReplyReaderFactory.ReadLine(SmtpReplyReader調用者)的System.Net.Mail.CheckCommand.Send(SmtpConnection conn,String& System.Net.Mail.StartTlsCommand.Send(SmtpConnection conn)在System.Net.Mail.SmtpTransport.GetConnection(ServicePoint servicePoint)在System.Net.Mail。 System.Net.Mail.SmtpClient.Send(MailMessage消息)處的.SmtpClient.GetConnection()”
您正在嘗試將Gmail的SMTP服務器用於不屬於Gmail的電子郵件地址(根據帖子的標題)。 您需要更新主機和端口的詳細信息,以適合電子郵件提供商的SMTP詳細信息。
您的代碼看起來合理,因此您需要找出導致其無法正常工作的原因。
您能否消除防火牆問題的可能性? 大多數中型或大型組織都傾向於阻塞端口25、465和587-他們只是不希望任何未經授權的郵件發送出去。 如果您懷疑可能是這種情況,則可以嘗試從網絡外部(例如,您的家用計算機)進行嘗試,盡管某些ISP也會阻塞端口。
如果防火牆沒有阻止您的連接,請驗證您的憑據是否有效-可以通過Thunderbird,Outlook或類似的方式發送。 嘗試使用未加密的郵件設置測試-遍歷您的垃圾郵件文件夾,將其中一些粘貼到spamcop或等效郵件中,然后尋找開放中繼。 或者,有些商業電子郵件提供商支持未加密的電子郵件。
您可以檢查出來..簡單的代碼及其適用於gmail帳戶的功能...
try
{
MailMessage msg = new MailMessage();
msg.From = new MailAddress(TextFRM.Text);
msg.To.Add(TextTO.Text);
msg.Subject = TextSUB.Text;
msg.Body = TextMSG.Text;
SmtpClient sc = new SmtpClient("smtp.gmail.com");
sc.Port = 25;
sc.Credentials = new NetworkCredential(TextFRM.Text, TextPSD.Text);
sc.EnableSsl = true;
sc.Send(msg);
Response.Write("Mail Send");
}
catch (Exception ex)
{
Response.Write(ex.Message);
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.