如何在.NET Core 3.1和C#中使用SendGrid发送邮件时添加CC或BCC
如何在.NET Core 3.1中使用SendGrid发送带抄送(CC)和密送(BCC)的邮件
你可以通过扩展现有方法,添加CC、BCC参数并调用SendGridMessage的AddCc、AddBcc方法实现需求。以下是修改后的完整代码:
public async Task<Response> Send(string ToUser, string Subject, string TextContent, string HtmlContent, string ccUsers = null, string bccUsers = null, string base64context = null, string filename = "") { string apiKey = AppConfiguration.SendGridApiKey; SendGridClient client = new SendGridClient(apiKey); EmailAddress from = new EmailAddress(AppConfiguration.SendGridFromEmail, AppConfiguration.SendGridFromName); EmailAddress toMail = new EmailAddress(ToUser); SendGridMessage msg = MailHelper.CreateSingleEmail(from, toMail, Subject, TextContent, HtmlContent); // 添加抄送(CC)地址,支持逗号分隔多个邮箱 if (!string.IsNullOrWhiteSpace(ccUsers)) { foreach (var cc in ccUsers.Split(new[] { ',' }, StringSplitOptions.RemoveEmptyEntries)) { msg.AddCc(new EmailAddress(cc.Trim())); } } // 添加密送(BCC)地址,支持逗号分隔多个邮箱 if (!string.IsNullOrWhiteSpace(bccUsers)) { foreach (var bcc in bccUsers.Split(new[] { ',' }, StringSplitOptions.RemoveEmptyEntries)) { msg.AddBcc(new EmailAddress(bcc.Trim())); } } if(!string.IsNullOrWhiteSpace(base64context) && !string.IsNullOrWhiteSpace(filename)) { msg.AddAttachment(filename, base64context); } return await client.SendEmailAsync(msg); }
关键修改说明:
- 新增可选参数
ccUsers和bccUsers,支持传入逗号分隔的多邮箱字符串(例如"user1@example.com,user2@example.com") - 通过
Split拆分多邮箱字符串,遍历添加到CC/BCC列表,并用Trim处理地址中的空格 - 调用SendGridMessage内置的
AddCc、AddBcc方法完成抄送、密送地址的添加
调用示例:
await Send("target@example.com", "测试主题", "纯文本内容", "<h1>HTML内容</h1>", ccUsers: "cc1@example.com,cc2@example.com", bccUsers: "bcc@example.com");
内容的提问来源于stack exchange,提问作者Arjun Bhatt
相关产品推荐
相关产品推荐

