在尝试块中成功发送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块内实现成功消息。谢谢你的帮助。

在尝试块中成功发送Smtp邮件的弹出消息

如果你想显示一个弹出窗口,有两种方法:-当你返回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!!!");
                        }                      
                    }
                });