我在html网站上有一个联系表格,我希望使用ajax发送电子邮件。我想要一个简单的页面(最好是剃刀)来发送电子邮件。
发送电子邮件页面必须是安全的,以便其他任何人都无法通过自己的表单向此页面发送消息(我在考虑只允许Web服务器的IP地址发送电子邮件?)。它还必须支持通过Gmail发送电子邮件(必须能够使用ssl和自定义端口号)。
以下是发送我的电子邮件的ajax:
$('#ajax-contact-form').submit(function (e) {
e.preventDefault();
if ($('#ajax-contact-form').valid()) {
jQuery.ajax({
type: 'POST',
url: 'sendemail.cshtml',
data: $('#ajax-contact-form').serialize(),
error: function () { $('#EmailMessage').html("Error! Please try again."); }, //Failed
success: function () { $('#EmailMessage').html("Email sent!"); } //Sent
});
}
});
有没有人有一个我可以用来发送电子邮件的剃刀页面的例子?
答案 0 :(得分:0)
这段代码对我在网络表单中非常有帮助,恕我直言,它也可以在这里工作
您需要3个参数,Email
:将向其发送电子邮件,MailSubject
电子邮件主题行,MailBody
文字或将在电子邮件中显示的HTML。
public static bool SendMail(string Email, string MailSubject, string MailBody)
{
bool isSent = false, isMailVIASSL = Convert.ToBoolean(ConfigurationManager.AppSettings["MailServerUseSsl"]);
string mailHost = ConfigurationManager.AppSettings["MailServerAddress"].ToString(),
senderAddress = ConfigurationManager.AppSettings["MailServerSenderUserName"].ToString(),
senderPassword = ConfigurationManager.AppSettings["MailServerSenderPassword"].ToString();
int serverPort = Convert.ToInt32(ConfigurationManager.AppSettings["MailServerPort"]);
MailMessage msgEmail = new MailMessage(new MailAddress(senderAddress), new MailAddress(Email));
using (msgEmail)
{
msgEmail.IsBodyHtml = true;
msgEmail.BodyEncoding = System.Text.Encoding.UTF8;
msgEmail.Subject = MailSubject;
msgEmail.Body = MailBody;
using (SmtpClient smtp = new SmtpClient(mailHost))
{
smtp.UseDefaultCredentials = false;
smtp.EnableSsl = isMailVIASSL;
smtp.Credentials = new NetworkCredential(senderAddress, senderPassword);
smtp.Port = serverPort;
try
{
smtp.Send(msgEmail);
isSent = true;
}
catch (Exception ex)
{
throw ex;
}
}
}
return isSent;
}
这是web.config部分,如果需要,您可以随时对其进行硬编码。
<!-- Mail Server Settings -->
<add key="MailServerAddress" value="smtp.gmail.com" />
<add key="MailServerPort" value="25" />
<add key="MailServerSenderUserName" value="info@gmail.com" />
<add key="MailServerSenderPassword" value="info_pswd" />
<add key="MailServerUseSsl" value="True" />