如何使用ASP.NET和C#发送电子邮件

Rob*_*Rob 2 c# asp.net

我正在尝试创建一个接收用户信息(包括电子邮件)的Web服务,然后发送一封确认电子邮件.我有什么想法可以做到这一点?我是否必须在我的机器上安装SMTP服务器?

mse*_*dio 8

您可以使用任何远程SMTP服务器,除非需要,否则无需在本地设置.我为它创建了一个帮助方法:

您需要导入名称空间:

using System;
using System.Net.Mail;
Run Code Online (Sandbox Code Playgroud)

这是一个帮助方法,它显示了使用SmtpClient类发送的用法:

public static void SendMessage(string smtpServer, string mailFrom, string mailFromDisplayName, string[] mailTo, string[] mailCc, string subject, string body)
{
    try
    {
        using (SmtpClient client = new SmtpClient(smtpServer))
        {
            string to = mailTo != null ? string.Join(",", mailTo) : null;
            string cc = mailCc != null ? string.Join(",", mailCc) : null;

            MailMessage mail = new MailMessage();
            mail.From = new MailAddress(mailFrom, mailFromDisplayName);
            mail.To.Add(to);

            if (cc != null)
            {
                mail.CC.Add(cc);
            }

            mail.Subject = subject;
            mail.Body = body.Replace(Environment.NewLine, "<BR>");
            mail.IsBodyHtml = true;

            client.Send(mail);
        }
    }
    catch (Exception ex)
    {
        // exception handling
    }
}
Run Code Online (Sandbox Code Playgroud)

请注意,如果您希望邮件尽可能快地发送,请务必在完成后处置SmtpClient.有关详细信息,请参阅System.Net.Mail和MailMessage不立即发送消息.上面的方法已经处理它,因为SmtpClient被包装在一个使用块中,因此已经在这个方法中处理了.