发送邮件(包含抄送)

App.Config文件的配置

<add key="SmtpServer" value="smtp.gmail.com"/><!--服务器地址-->
  <add key="MailFrom" value="**@gmail.com"/><!--发件人邮箱-->
  <add key="PassWord" value="******"/><!--发件人密码-->
  <add key="MailTo" value="******@qq.com"/><!--收件人邮箱-->
  <add key="MailSubject" value="邮件的标题"/><!--邮件标题-->
<add key="EnableSsl" value="1"/><!--是否使用安全套接字层加密发送-->
<add key="ServerPort" value="587"/><!--端口-->
  <add key="MailBody" value="Dear All,邮件的内容,请查收,谢谢。——***"/><!--邮件正文内容-->
  <add key="CarbonCopy" value="****@qq.com"/><!-- 可抄送多人,每个邮箱地址使用";"隔开-->

 

/// <summary>
/// 发送邮件到用户
/// </summary>
public static void SendEmailToUser()
{
String strSmtpServe = ConfigurationManager.AppSettings["SmtpServer"].ToString();//服务器地址
string strFrom = ConfigurationManager.AppSettings["MailFrom"].ToString();//发件人地址
string strFromPass = ConfigurationManager.AppSettings["PassWord"].ToString();//发件人邮箱密码
string strTo = ConfigurationManager.AppSettings["MailTo"].ToString();//收件人地址
string strSubject = ConfigurationManager.AppSettings["MailSubject"].ToString();//标题
bool IsHtml = true;
bool boolEnableSsl = Convert.ToBoolean(int.Parse(ConfigurationManager.AppSettings["EnableSsl"].ToString()));
int iPort = int.Parse(ConfigurationManager.AppSettings["ServerPort"].ToString());
string strBody = ConfigurationManager.AppSettings["MailBody"].ToString();//内容
string carBonCoyList = ConfigurationManager.AppSettings["CarbonCopy"].ToString();//抄送
SendSMTPEmail(strSmtpServe, strFrom, strFromPass, strTo, strSubject, IsHtml, strBody, iPort, boolEnableSsl, carBonCoyList);//发送第一封邮件
}

/// <summary>
/// 发送邮件
/// </summary>
/// <param name="strSmtpServer">邮件服务器地址</param>
/// <param name="strFrom">发件人地址</param>
/// <param name="strFromPass">密码</param>
/// <param name="strto">收件人</param>
/// <param name="strSubject">标题</param>
/// <param name="IsHtml">邮件格式是否为Html格式</param>
/// <param name="strBody">内容</param>
/// <param name="iPort"></param>
/// <param name="boolEnableSsl"></param>
public static void SendSMTPEmail(string strSmtpServer, String strFrom, String strFromPass, String strto, String strSubject, Boolean IsHtml, String strBody, int iPort, Boolean boolEnableSsl, string carBonCoyList)
{
try
{
char[] splitter = new char[] { ';' };
string[] CClist = carBonCoyList.Split(splitter, StringSplitOptions.RemoveEmptyEntries);
SmtpClient client = new SmtpClient(strSmtpServer);
client.Credentials = new System.Net.NetworkCredential(strFrom, strFromPass);
client.DeliveryMethod = SmtpDeliveryMethod.Network;//邮件发送方式
client.Timeout = 120000;
client.Port = iPort;
client.EnableSsl = boolEnableSsl;
strSubject = strSubject + "(" + DateTime.Now.ToString("yyyyMMdd") + ")";
MailMessage message = new MailMessage(strFrom, strto, strSubject, strBody);
message.BodyEncoding = System.Text.Encoding.GetEncoding("GB2312");
message.SubjectEncoding = System.Text.Encoding.GetEncoding("GB2312");
foreach (string val in CClist)
{
MailAddress copy = new MailAddress(val);
message.CC.Add(copy);
}
string savepath = ConfigurationManager.AppSettings["savepath"].ToString();//附件

string attaches = Path.Combine(Path.GetDirectoryName(savepath), Path.GetFileName(savepath));
Attachment a1 = new Attachment(attaches);
message.Attachments.Add(a1);
message.IsBodyHtml = IsHtml;
client.Send(message);
}
catch (Exception ex)
{
String err = ex.Message;
}
}

转载于:https://www.cnblogs.com/xuebingz/archive/2012/08/15/2639519.html

### 如何在批量发送邮件时添加抄送功能 在 Python 中,可以利用 `smtplib` 和 `email` 库来实现电子邮件发送,并通过设置 CC 字段完成抄送功能。以下是具体方法: #### 使用 SMTP 协议发送抄送功能的邮件 为了成功向多个收件人发送邮件并同时抄送其他人,需要正确配置邮件头中的 `To`, `Cc` 和 `Bcc` 字段。以下是一个完整的代码示例,展示如何使用 Python 实现这一目标。 ```python import smtplib from email.mime.text import MIMEText from email.utils import formataddr def send_email_with_cc(sender, password, recipients, cc_recipients, subject, content): msg = MIMEText(content, 'plain', 'utf-8') # 设置发件人的显示名称和邮箱地址 msg['From'] = formataddr(("Sender Name", sender)) # 合并收件人列表为字符串形式 to_list_str = ", ".join(recipients) cc_list_str = ", ".join(cc_recipients) # 配置 To 和 Cc 头部字段 msg['To'] = to_list_str msg['Cc'] = cc_list_str # 主题 msg['Subject'] = subject try: server = smtplib.SMTP_SSL("smtp.gmail.com", 465) # Gmail SMTP Server server.login(sender, password) # 组合所有接收者(包括主收件人和抄送) all_receivers = recipients + cc_recipients server.sendmail(sender, all_receivers, msg.as_string()) server.quit() print("Email sent successfully!") except Exception as e: print(f"Failed to send email: {e}") # 示例参数 sender = "your-email@gmail.com" password = "your-password-or-app-specific-password" recipients = ["recipient1@example.com"] cc_recipients = ["cc-receiver1@example.com", "cc-receiver2@example.com"] subject = "Test Email with CC" content = "This is a test email demonstrating how to use the CC field." send_email_with_cc(sender, password, recipients, cc_recipients, subject, content) ``` 上述代码实现了以下几个关键点: 1. **消息构建**:创建了一个简单的纯文本邮件对象 `MIMEText` 并设置了编码[^1]。 2. **头部信息**:分别定义了 `To` 和 `Cc` 字段的内容,并将其转换成逗号分隔的形式以便于传输[^3]。 3. **SMTP 登录与发送**:连接到指定的 SMTP 服务器(此处以 Gmail 为例),并通过组合主收件人和抄送者的列表传递给 `sendmail()` 方法[^4]。 需要注意的是,在某些情况下,如果发现抄送失败,则可能是因为邮件服务提供商的安全策略阻止了该行为;此时建议检查所使用的账户权限以及是否启用了必要的安全选项(如应用专用密码对于 Google 账户而言)[^2]。 --- ### 注意事项 当尝试解决无法正常收到抄送邮件的问题时,请考虑以下几点: - 确认所有的邮箱地址均有效无误; - 如果使用第三方库如 PHPMailer 或其他框架封装工具,请仔细阅读其文档说明关于 CC 参数的具体用法; - 对于企业内部网络环境下的 Outlook 客户端集成场景下,还需要额外关注 COM 对象操作权限等问题。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值