繁体   English   中英

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

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM