我有网络服务:
[WebMethod]
public void SendMail(string _name, string _email, string _message)
{
//Create Mail Message Object with content that you want to send with mail.
MailMessage MyMailMessage = new MailMessage("gglebati@example.com", "gglebati@example.com", "This is the mail subject", "Just wanted to say Hello");
MyMailMessage.IsBodyHtml = false;
//Proper Authentication Details need to be passed when sending email from gmail
NetworkCredential mailAuthentication = new NetworkCredential("myxxxxx@gmail.com", "xxxxxxxxx");
//Smtp Mail server of Gmail is "smpt.gmail.com" and it uses port no. 587
//For different server like yahoo this details changes and you can
//get it from respective server.
SmtpClient mailClient = new SmtpClient("smtp.gmail.com", 587);
//Enable SSL
mailClient.EnableSsl = true;
mailClient.UseDefaultCredentials = false;
mailClient.Credentials = mailAuthentication;
mailClient.Send(MyMailMessage);
}
我有一个html页面。如何从我的html页面调用此函数? (此功能必须将消息发送到电子邮件)
答案 0 :(得分:5)
使用jQuery库。它使ajax调用成为一块蛋糕。然后按照以下条款:
ScriptService
属性(此属性意味着您可以通过JavaScript调用您的服务)将项目发送到您的网络服务方法
$('#buttonId').click(function(){
// Validating input
$.ajax({
type: 'POST',
url: '/your-web-service-path.asmx/your-method-name',
data: {}
dataType: 'json',
contentType: 'application/json; charset=utf-8',
success: function(r){},
error: function(e){}
});
});
请注意,您必须使用参数创建JSON对象,并且JSON属性的名称应与Web服务参数的名称相匹配。另请注意,当r.d
对象传递给ajax调用的成功回调时,Web服务的返回值将可用。
答案 1 :(得分:0)
如果它是一个aspx页面,你可以添加一个带有EnablePageMethods =“true”属性的ScriptManager,然后调用PageMethods.sendMail(name,email,message,onSuccess,onFail);
答案 2 :(得分:0)
也许您想看一下jQuery的ajax功能。
答案 3 :(得分:0)
您需要做一些非常重要的事情:在类中添加ScriptService属性,以便可以从Javascript中调用它,如下例所示:
[ScriptService]
public class SimpleWebService : System.Web.Services.WebService
{
// ...
}
http://msdn.microsoft.com/en-us/library/system.web.script.services.scriptserviceattribute.aspx
答案 4 :(得分:0)
你必须通过这样的方式调用cs代码页传递三个参数,
service.SendMail(name, email, message);