[英]try-catch block used while smtp exception need to display an error message in the local server
[英]Popup message for Smtp email is sent successfully in try block
我正在使用SmtpClient通過“提交”按鈕發送電子郵件。 單擊“提交”后,電子郵件發送成功,同時我想通知用戶(彈出窗口)電子郵件是否發送成功,但是我找不到合適的方法來實現。 請在下面檢查我的代碼:
@using System.Net.Mail;
@{
ViewBag.Title = @Resources.Common.AppName;
}
if (IsPost)
{
var memberCode = Request["memberCode"];
var memberNo = Request["memberNo"];
var msgSub = "title:" + ViewBag.PromotionFeedTitle;
var msgBody = "Member Code: "+memberCode+"\nMember Contact: "+memberNo;
using (var client = new SmtpClient())
{
var msg = new MailMessage();
msg.IsBodyHtml = true;
msg.BodyEncoding = System.Text.Encoding.UTF8;
msg.To.Add("xxx@xxx.net");
msg.Subject = msgSub;
//Create message body in HTML
msg.Body = msgBody;
// Send the email
try
{
client.Send(msg);
//send succeed
}
catch (Exception ex)
{
//send failed
}
}
}
HTML形式:
<form id="form1" method="post" action="" onsubmit="return terms(); ">
<div>
<fieldset>
<table>
<h4 id="popuptitle" style="direction=left; color: Aqua;">
申請優惠:@ViewBag.Title
<tr><td>
MemberCode:
</td><td>
<input id="memberCode" autocomplete="off" type="text" oninvalid="InvalidMsg(this);" onkeypress="return alpha(event)" name="memberCode" style="color: Black;" required>
</td></tr>
<tr><td>
MemberNo:
</td>
<td>
<input id="memberNo" autocomplete="off" type="number" oninvalid="InvalidMsg(this);" OnKeyPress="return CheckNumericKeyInfo(event.keyCode, event.which)" name="memberNo" style="color: Black;" required/>
</td></tr>
<tr><td>
<input type="checkbox" id="agree" class="largerCheckbox" name="myTextEditBox" value="1" />
</td>
<td>
Checkbox
</td></tr>
</table>
</fieldset>
</div>
</form>
提交按鈕div:
<div class="divbtns" style="width: 95%;">
<button id="sbutton" class="button" type="submit" data-theme="t" form="form1">
Send</button>
</div>
注意:以上所有內容均在“查看”頁面中,而不是后置代碼。 我正在嘗試在try / catch塊中實現成功消息。 感謝您的幫助。
如果要顯示彈出窗口,有兩種方法:-當您返回View時,可以在客戶端顯示彈出窗口以通知用戶,例如:
$(function(){alert("Your mail was sent!");});
-您可以使用ajax提交表單,然后在收到服務器的響應時顯示彈出窗口
$.Ajax({
....
success: function(data){alert("Your mail was sent!");}
});
在您的C#代碼中,您可以使用以下代碼編寫返回給客戶端的響應:
Response.Write("Success");
要么
Response.Write("Failed");
然后,客戶端可以讀取Ajax調用的響應,並確定消息是否已成功發送。 然后,您可以使用alert()
函數顯示一條消息。
但是,您將必須執行Ajax調用而不是頁面提交。 使用jQuery看起來像這樣:
$.ajax({
// ajax options
success: function(data, status, xhttp)
{
if (data == 'Success') {
alert('Yay! It worked!');
}
else {
alert("Oh noes!!!");
}
}
});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.