[英]C# Failure sending mail
我創建了一個應用程序,因為我提供了發送郵件的選項。 它一直工作到昨天。 但是今天我在發送諸如“發送郵件失敗”之類的郵件時出現錯誤。為此,我在下面提供了我的代碼,請幫助我更正。
protected void Button1_Click(object sender, EventArgs e)
{
try
{
if (TextBox1.Text == "")
{
string alertmessage = "";
alertmessage = "Email ID. cannot be blank ";
this.CreateMessageAlert(this, alertmessage, "alertKey");
TextBox1.Focus();
}
else if (TextBox2.Text == "")
{
string alertmessage = "";
alertmessage = "CC To cannot be blank ";
this.CreateMessageAlert(this, alertmessage, "alertKey");
TextBox2.Focus();
}
else if (TextBox3.Text == "")
{
string alertmessage = "";
alertmessage = "Subject cannot be blank ";
this.CreateMessageAlert(this, alertmessage, "alertKey");
TextBox3.Focus();
}
else if (TextBox4.Text == "")
{
string alertmessage = "";
alertmessage = "Message Body cannot be blank ";
this.CreateMessageAlert(this, alertmessage, "alertKey");
TextBox4.Focus();
}
//else if (upSignature.FileName == "")
//{
// ctr = 1;
// string alertmessage = "";
// alertmessage = "Attachment Missing...";
// this.CreateMessageAlert(this, alertmessage, "alertKey");
// upSignature.Focus();
//}
else
{
string photo = "Enquiry" + Session["MRNO"].ToString() + FileUpload1.FileName;
string strpath = Request.MapPath("~/");
FileUpload1.SaveAs(strpath + "/Enquiry/" + photo);
try
{
MailMessage mail = new MailMessage();
mail.To.Add(new MailAddress(TextBox1.Text.Trim()));
mail.From = new MailAddress("purchase@oeg.co.in");
mail.Subject = "Enquiry for MRNO " + " " + " " + Session["MRNO"].ToString() + " " + " " + "Reg.";
mail.CC.Add(TextBox2.Text.Trim());
mail.Body = TextBox4.Text.Trim();
mail.Attachments.Add(new Attachment(FileUpload1.PostedFile.InputStream, FileUpload1.FileName));
mail.Attachments.Add(new Attachment(FileUpload2.PostedFile.InputStream, FileUpload2.FileName));
//Attachment attach = new Attachment(strpath + "/Enquiry/" + photo);
//mail.Attachments.Add(attach);
SmtpClient smtp = new SmtpClient("smtp.gmail.com", 587);
smtp.EnableSsl = true;
smtp.UseDefaultCredentials = false;
smtp.Credentials = new NetworkCredential("purchase@oeg.co.in", "xxxxx");
//smtp.Credentials = new NetworkCredential("purchaseoeg", "xxxxx");
smtp.Send(mail);
string alertmessage = "";
alertmessage = "Mail Has Been Sent";
this.CreateMessageAlert(this, alertmessage, "alertKey");
// Page.RegisterStartupScript("close", "<script language=javascript>self.close();</script>");
}
catch (Exception ex)
{
Response.Write(ex.Message);
}
}
}
catch (Exception ex1)
{
Response.Write(ex1.Message);
}
}
如果它曾經工作,現在它不工作,它很可能是 SMTP 服務器。
<system.net>
<mailSettings>
<smtp deliveryMethod="SpecifiedPickupDirectory">
<specifiedPickupDirectory pickupDirectoryLocation="C:\TestMailMessages\" />
</smtp>
</mailSettings>
</system.net>
將上面的代碼放在你的 App.config 或 Web.config 中。 當您發送消息時(通過 var smtpClient = new SmtpClient();),它現在將作為文件存儲在“ pickupDirectoryLocation ”目錄中。
如果消息到達那里 OK,那么您的代碼就可以了
然后您可以繼續測試您的 smtp 設置/測試服務器。 有很多方法可以做到這一點,包括使用 Telnet。
如果問題是間歇性的,可以向 SMTP 發送添加重試邏輯。
public string btnSendmail( )
{
try
{
//Code for send Email
string msg = txtEmail.Text;
MailMessage sendMailforSA = new MailMessage();
SmtpClient smtpforSA = new SmtpClient();
string subjectforSA = null;
subjectforSA = "Thanks for apply";
System.Net.NetworkCredential credforSA = new System.Net.NetworkCredential("yourGmailID@gmail.com", "password");
sendMailforSA.To.Add("ToEmailID");
sendMailforSA.From = new MailAddress("yourGmailID@gmail.com");
sendMailforSA.Subject = subjectforSA.ToString();
sendMailforSA.Body = "hiii This is Test Message";
sendMailforSA.IsBodyHtml = false;
smtpforSA.Host = "smtp.gmail.com";
smtpforSA.Port = 587;
smtpforSA.EnableSsl = true;
smtpforSA.UseDefaultCredentials = false;
smtpforSA.Credentials = credforSA;
smtpforSA.Send(sendMailforSA);
return "Email successfully sent.";
}
catch (Exception ex)
{
return "Send Email Failed." + ex.Message;
}
}
還要寫在 web.config 文件中:
<system.net>
<mailSettings>
<smtp from="yourGmailID@gmail.com">
<network host="smtp.gmail.com" port="587" userName="yourGmailID@gmail.com" password="password" defaultCredentials="false"/>
</smtp>
</mailSettings>
</system.net>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.