[英]send mail and show delivery message in asp.net
我如何在asp.net中顯示傳遞消息? 我在工作中使用此代碼,但此代碼沒有回復我。 因為我想顯示消息傳遞
public string sendemail(String strFrom, string strTo, string strSubject, string strBody)
{
string delivery;
Array arrToArray;
char[] splitter = { ';' };
arrToArray = strTo.Split(splitter);
MailMessage mm = new MailMessage();
mm.From = new MailAddress(strFrom);
mm.Subject = strSubject;
mm.Body = strBody;
//mm.IsBodyHtml = IsBodyHTML;
mm.ReplyTo = new MailAddress("toMail@yahoo.com");
foreach (string s in arrToArray)
{
mm.To.Add(new MailAddress(s));
}
SmtpClient smtp = new SmtpClient();
try
{
smtp.Host = "smtp.mail.yahoo.com";
smtp.EnableSsl = true; //Depending on server SSL Settings true/false
System.Net.NetworkCredential NetworkCred = new System.Net.NetworkCredential();
NetworkCred.UserName = "fromMail@yahoo.com";
NetworkCred.Password = "pass";
smtp.UseDefaultCredentials = true;
smtp.Credentials = NetworkCred;
smtp.Port = 587;//Specify your port No;
smtp.Send(mm);
mm.DeliveryNotificationOptions = DeliveryNotificationOptions.OnSuccess;
delivery = mm.DeliveryNotificationOptions.ToString();
}
catch
{
mm.Dispose();
smtp = null;
delivery = mm.DeliveryNotificationOptions.ToString();
}
return delivery;
}
protected void btnSend_Click(object sender, EventArgs e)
{
Thread threadSendMails;
threadSendMails = new Thread(delegate()
{
Label1.Text = sendemail("fromMail@yahoo.com", "toMail@yahoo.com", "Hello", "<p>Body</p>");
});
threadSendMails.IsBackground = false ;
threadSendMails.Start();
}
由於SMTP協議的設計,您不能確定郵件實際上已到達收件人。 您只能確定服務器已接受該消息。 傳遞通知僅在某些目標郵件服務器中實現,而讀取通知主要是客戶端。 如果他們是書面的,他們將通過郵件發送到發件人的地址。 要捕獲這些,您需要監視POP3或IMAP框,或任何您擁有的框。
另外:您應該考慮不使用線程-這很容易導致難以調試怪異的行為。
我認為沒有必要在單獨的線程中發送電子郵件。 相反,您可以只調用sendemail
或在btnSend_click
事件處理程序中實現電子郵件發送的其他方法。
此外,沒有同步方式來顯示您發送的電子郵件的傳遞消息。
如果您只想向網站用戶顯示成功消息,則需要在標記文件(.aspx)中聲明一些asp:Label
控件,默認情況下使其不可見,並在btnSend_click
其顯示為:
protected void btnSend_Click(object sender, EventArgs e)
{
sendemail("fromMail@yahoo.com", "toMail@yahoo.com", "Hello", "<p>Body</p>");
Label1.Visible = true;
// assuming you have asp:Label control with ID "Label1"
// and "Visible" property set to false
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.