随笔 - 56  文章 - 0  评论 - 0  阅读 - 12823

C#_发邮件

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;
}
}
posted on   Jeffrey~~  阅读(148)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· 单线程的Redis速度为什么快?
· 展开说说关于C#中ORM框架的用法!
· Pantheons:用 TypeScript 打造主流大模型对话的一站式集成库
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

点击右上角即可分享
微信分享提示