使用 jquery ajax、webservice 和 c# 发送电子邮件

Posted

技术标签:

【中文标题】使用 jquery ajax、webservice 和 c# 发送电子邮件【英文标题】:Sending Email using jquery ajax,webservice and c# 【发布时间】:2017-12-25 06:02:56 【问题描述】:

我不知道我做错了什么。我的代码不断给我这个错误。

jquery.js:10254 POST http://localhost:7855/Services/svUsers.asmx/EmailNotification500(内部服务器错误)

这是我所有的代码

[WebMethod]
public bool EmailNotification(string from,string to,string username)

    MailMessage tmail = new MailMessage();
    tmail.From = new MailAddress(from);
    tmail.To.Add(new MailAddress(to));
    StringBuilder builder = new StringBuilder();
    builder.Append(string.Format("Dear 0 <br/><br/>",username));
    builder.Append("How are you john iliya i am testing Sending Email Messages with Webservice...i have faith it would work...");
    builder.Append(("<br/><br/>"));
    builder.Append("<b>Powered By JINGBREEDS.com");
    tmail.Subject = "Testing Of Mail Messages";
    tmail.Body = builder.ToString();
    tmail.IsBodyhtml = true;
    tmail.Priority = MailPriority.Normal;
    var smtp = new SmtpClient();
    
        smtp.Host = "smtp.gmail.com";
        smtp.Port = 587;
        smtp.EnableSsl = true;
        smtp.DeliveryMethod = SmtpDeliveryMethod.Network;
        smtp.Credentials = new System.Net.NetworkCredential("yourun@gmail.com","yourpswd");
    
    smtp.Send(tmail);
    return true;

<input type="text" placeholder="Email Address" name="txtEMF"  class="form-control" />
<input type="text" placeholder="Email Address" name="txtEMT"  class="form-control" />
<input type="button" class="btn-info btn form-control" name="btnSend" value="Send"  />

<script type="text/javascript">
    $(document).ready(function () 
        $("input[name$='btnSend']").click(function () 
            var un = "airmarshalg";
            $.ajax(
                url: "../Services/svUsers.asmx/EmailNotification",
                method: "POST",
                data:  from: $("input[name$='txtEMF']").val(), to: $("input[name$='txtEMT']").val(), username: un ,
                contentType: "application/json; charset=utf-8",
                dataType: "json",
                success: function (response) 
                    if(response.data == true)
                    
                        alert("Hurray message sent...");
                                                   
                ,
                error: function (err) 
                    console.log(err);
                
            );
        );
    );
</script>

【问题讨论】:

要扩展 Will 的评论,您需要弄清楚服务器返回 HTTP 500 的根本原因是什么。这可能意味着添加日志记录,或者在附加了调试器的情况下单步执行代码。跨度> 您是否调试了代码以找出问题所在? 我是编程的新手先生...我不知道如何在附加调试器的情况下进入代码 首先在 EmailNotification 方法的第一行放置一个断点,看看它是否被命中。然后使用 F10 单步执行该方法以查看它的位置。 当我单独运行 web 服务时,它可以工作并将邮件发送到我的邮件地址,但是当我尝试使用 ajax 调用运行它时,它会引发错误 【参考方案1】:

我能够通过在我的 web 服务的最顶部取消注释这行代码来解决这个问题。这是我的一个可怕的错误 [System.Web.Script.Services.ScriptService]

谢谢大家,代码就像使用 angular 的魅力 haha​​hah 一样

【讨论】:

以上是关于使用 jquery ajax、webservice 和 c# 发送电子邮件的主要内容,如果未能解决你的问题,请参考以下文章

使用 jQuery/Ajax 从 JavaScript 调用 WCF/JSON/REST WebService

jquery中通过ajax调用webservice传递数组参数的问题

ajax如何调用java写的webservices服务

在 asp.net webservices 中使用 jQuery AJAX 总是出错:而不是成功:

Jquery Ajax 复杂json对象提交到WebService

如何在 c# ASP.Net 中使用有效的 JSON 输出创建 JSON WebService 并使用 JQuery/Ajax 进行查询