发送电子邮件至razor

时间:2014-06-10 01:53:49

标签: asp.net ajax asp.net-mvc razor

我在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 
        });
    }
});

有没有人有一个我可以用来发送电子邮件的剃刀页面的例子?

1 个答案:

答案 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" />