如何通过c#中的sendgrid电子邮件中的替换方式向多个配方发送电子邮件? Sendgrid api替换不适用于多个receipents。 我正在使用Sendgrid发送包含多个变量的模板的电子邮件。当我只有一个电子邮件收件人时,一切都很顺利。
如果我在To中有多个收件人,或者在To中有一个收件人,而在Cc中有一个收件人,则第一封电子邮件是正常的,但以下在替代标签中有空字符串。
以下是我的代码:
var message = new SendGridMessage();
message.Subject = fullName + " has shared SmartForm with you for " + PLConstants.APP_NAME;
message.EnableTemplateEngine(PLConstants.SEND_SMARTFORM_EMAIL_TOUSER);
if (!string.IsNullOrEmpty(emailIds))
{
string[] bccAddressField = emailIds.Split(',');
for (int icount = 0; icount < bccAddressField.Length; icount++)
{
if (bccAddressField[icount].ToString() != "")
{
if (message.To.Length == 0)
{
message.AddTo(bccAddressField[icount].ToString());
}
else
{
//message.AddTo(bccAddressField[icount].ToString());
message.AddBcc(new EmailAddress(bccAddressField[icount].ToString()).ToString());
}
}
}
}
string profileUrl = string.Format("{0}{1}", PLConstants.SMARTLINK_URL,(HttpContext.Current.Session[PLConstants.SESSION_USERNAME].ToString()));
message.AddSubstitution("{SenderName}",new List<string> { (HttpContext.Current.Session[PLConstants.SESSION_FIRST_NAME].ToString()) });
message.AddSubstitution("{SmartListingName}", new List<string> { objSmartListingModel.Title });
message.AddSubstitution("{SmartListingLink}", new List<string> { smartListingLink });
message.AddSubstitution("{SmartListingRedirectionLink}", new List<string> { smartListingRedirectionLink });
message.Html = " ";
Mailer.SendEmail(message);
答案 0 :(得分:0)
如果收件人列表中的“收件人”字符串如下,请尝试按如下方式添加收件人。您也可以将它用于CC / Bcc。
string To = "a@a.com; b@b.com";
//create the mail message
MailMessage mail = new MailMessage();
//set the addresses
string[] arrTo = To.Split(';');
for (int i = 0; i < arrTo.Length; i++)
{
if (!string.IsNullOrEmpty(arrTo[i].Trim()))
mail.To.Add(arrTo[i].Trim());
}
SmtpClient smtp = null;
smtp = new SmtpClient("smtp.sendgrid.net", Convert.ToInt32(587));
System.Net.NetworkCredential credentials = new System.Net.NetworkCredential("username", "password");
smtp.Credentials = credentials;
smtp.Send(mail);
答案 1 :(得分:0)
感谢您的回复。实际上我从@grishma找到了答案。 对于多个收据人,我已经通过了具有相应收件人数的通道替换值。
例如。如果我有4个收据,那么我必须添加替换,如: message.AddSubstitution(&#34; {SmartListingLink}&#34;,新列表{&#34; Link1&#34;,&#34; Link2&#34;,&#34; Link3&#34;});