在尝试块中成功发送Smtp邮件的弹出消息
本文关键字:消息 Smtp 成功 | 更新日期: 2023-09-27 18:17:04
我使用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>
注意:以上所有内容都在View页面而不是behind-code。我试图在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!!!");
}
}
});