.net 发送Email
using System.Net.Mail;
using System.Net;
发送EMail 是在这上面的命名空间下的。
见代码。最好是用异步发送,SmtpClient这个有个事件,可以表明是否发送成功。
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
/// <summary>
/// 发送Email
/// </summary>
/// <param name="toMailAddress">收件人地址</param>
/// <param name="isBCC">是否密件抄送</param>
/// <param name="ccEmails">抄送的地址集合</param>
/// <param name="subject">邮件的标题</param>
/// <param name="body">正文</param>
/// <param name="sendMailAddress">发送邮件的地址</param>
/// <param name="senMailPwd">发送邮件的密码</param>
/// <param name="port">端口号</param>
/// <param name="host">smtp事务机的主机或者IP地址</param>
/// <param name="attachments">附件的地址集合</param>
/// <returns>TRUE/FALSE</returns>
public bool SendMail(string toMailAddress, bool isBCC,
string[] ccEmails, string subject,
string body, string sendMailAddress,
string senMailPwd, int port, string host,
List<string> attachments,string sendName)
{
MailMessage msg = new MailMessage();
msg.To.Add(toMailAddress);
if (ccEmails != null)
{
foreach (string email in ccEmails)
{
if (isBCC)
{
msg.Bcc.Add(email);
}
else
{
msg.CC.Add(email);
}
}
}
msg.From = new MailAddress(sendMailAddress, sendName, Encoding.UTF8);
msg.Subject = subject;
msg.SubjectEncoding = Encoding.UTF8;
msg.Body = body;
msg.BodyEncoding = Encoding.UTF8;
msg.IsBodyHtml = false;
msg.Priority = MailPriority.High;
if (attachments != null)
{
foreach (string attachment in attachments)
{
msg.Attachments.Add(new Attachment(attachment));
}
}
SmtpClient client = new SmtpClient();
client.Credentials = new NetworkCredential(sendMailAddress, senMailPwd);
client.Port = port < 0 ? 25 : port;
client.Host = host;
//client.Host = "124.207.241.165";
if (port == 587)
{
client.EnableSsl = true;
}
try
{
client.SendAsync(msg, msg);
return true;
}
catch (Exception ex)
{
return false;
}
}
/// 发送Email
/// </summary>
/// <param name="toMailAddress">收件人地址</param>
/// <param name="isBCC">是否密件抄送</param>
/// <param name="ccEmails">抄送的地址集合</param>
/// <param name="subject">邮件的标题</param>
/// <param name="body">正文</param>
/// <param name="sendMailAddress">发送邮件的地址</param>
/// <param name="senMailPwd">发送邮件的密码</param>
/// <param name="port">端口号</param>
/// <param name="host">smtp事务机的主机或者IP地址</param>
/// <param name="attachments">附件的地址集合</param>
/// <returns>TRUE/FALSE</returns>
public bool SendMail(string toMailAddress, bool isBCC,
string[] ccEmails, string subject,
string body, string sendMailAddress,
string senMailPwd, int port, string host,
List<string> attachments,string sendName)
{
MailMessage msg = new MailMessage();
msg.To.Add(toMailAddress);
if (ccEmails != null)
{
foreach (string email in ccEmails)
{
if (isBCC)
{
msg.Bcc.Add(email);
}
else
{
msg.CC.Add(email);
}
}
}
msg.From = new MailAddress(sendMailAddress, sendName, Encoding.UTF8);
msg.Subject = subject;
msg.SubjectEncoding = Encoding.UTF8;
msg.Body = body;
msg.BodyEncoding = Encoding.UTF8;
msg.IsBodyHtml = false;
msg.Priority = MailPriority.High;
if (attachments != null)
{
foreach (string attachment in attachments)
{
msg.Attachments.Add(new Attachment(attachment));
}
}
SmtpClient client = new SmtpClient();
client.Credentials = new NetworkCredential(sendMailAddress, senMailPwd);
client.Port = port < 0 ? 25 : port;
client.Host = host;
//client.Host = "124.207.241.165";
if (port == 587)
{
client.EnableSsl = true;
}
try
{
client.SendAsync(msg, msg);
return true;
}
catch (Exception ex)
{
return false;
}
}
学习,积累中......