1、适合于发件人、收件人等信息全部是string类型
using System.Collections;
using System.Net;
using System.Net.Mail;
using System.Text;
private void SendMail(string toAddress,string ccAddress,string subject,string body)
{
string[] arrToAddress = toAddress.Split(';');//多个收件人邮箱地址以分号隔开
string[] arrCcAddress = ccAddress.Split(';');//多个抄送人邮箱地址以分号隔开
MailMessage mailMessage = new MailMessage();//定义邮件
SmtpClient smtpClient = new SmtpClient();//定义连接,发送邮件
if (toAddress.Length > 0)
{
foreach (string item in arrToAddress)
{
if (!string.IsNullOrEmpty(item.Trim()))
{
mailMessage.To.Add(item.Trim());//在邮件中添加收件人
}
}
}
if (ccAddress.Length > 0)
{
foreach (string item in arrCcAddress)
{
if (!string.IsNullOrEmpty(item.Trim()))
{
mailMessage.To.Add(item.Trim());//在邮件中添加抄送人
}
}
}
try
{
mailMessage.From = new MailAddress("");//邮件发送人地址,如xxx@yyyy.com
mailMessage.Subject = subject;//邮件主题
mailMessage.Body = body;//邮件内容
mailMessage.IsBodyHtml = true;//HTML格式
mailMessage.BodyEncoding = System.Text.Encoding.UTF8;//编码UTF8
mailMessage.Priority = MailPriority.Normal;//邮件发送的优先性为正常
//smtpClient.Credentials = new NetworkCredential(emailAcount, emailPassword);
//该语句是设置发送人邮件的账号密码,由于本次连接的服务器不需账号密码,所以不需要此语句,若连接其他服务器请用该语句
smtpClient.Host = "172.20.168.106";//发送连接服务器主机IP
smtpClient.Port = 25;//端口号
smtpClient.UseDefaultCredentials = false;//使用默认凭据
smtpClient.EnableSsl = false;//启动SSL,即安全发送
smtpClient.DeliveryMethod = SmtpDeliveryMethod.Network;//传递电子邮件消息,通过网络发送电子邮件到SMTP
smtpClient.Send(mailMessage);//确认发送按钮
}
catch (Exception e)
{
throw (e);
}
}
2、适合于暗抄送、并且是ArrayList类型
using System.Collections;
using System.Net;
using System.Net.Mail;
using System.Text;
/// <summary>
/// 发邮件(适合暗抄送)
/// </summary>
/// <param name="To">收件人</param>
/// <param name="CC">抄送人</param>
/// <param name="BCC">暗抄送</param>
/// <param name="Subject">主题</param>
/// <param name="Body">内容</param>
/// <param name="Attach">附件</param>
/// <param name="IsHTML">是否html格式</param>
/// <param name="Msg">返回信息</param>
/// <returns>成功true(out:"Y|"),失败false(out:"N|")</returns>
public static bool SendEmail(ArrayList? To, ArrayList? CC, ArrayList? BCC, string Subject, string Body, ArrayList? Attach, bool IsHTML, out string Msg)
{
try
{
Msg = "Y|";
SmtpClient smtpClient = new()
{
Host = "127.0.0.1",
DeliveryMethod = SmtpDeliveryMethod.Network,
Credentials = new NetworkCredential("username", "password"),
};
MailMessage mailMessage = new()
{
BodyEncoding = Encoding.UTF8,
Subject = Subject,
Body = Body,
IsBodyHtml = IsHTML,
From = new MailAddress("fajianren@163.com")
};
if (To != null)
{
foreach (string item in To)
{
mailMessage.To.Add(item);
}
}
if (CC != null)
{
foreach (string item2 in CC)
{
mailMessage.CC.Add(item2);
}
}
if (BCC != null)
{
foreach (string item3 in BCC)
{
mailMessage.Bcc.Add(item3);
}
}
if (Attach != null)
{
foreach (string Attachment in Attach)
{
mailMessage.Attachments.Add(new Attachment(Attachment));
}
}
smtpClient.Send(mailMessage);
mailMessage.Dispose();
return true;
}
catch (Exception ex)
{
Msg = "N|"+ex.Message;
return false;
}
}