如何在 Gmail 电子邮件中包含多个收件人?
How can I include multiple recipients in a gmail email message?
我有这个工作代码可以使用我的 gmail 帐户发送电子邮件:
public static void SendEmail(string fullName, string toEmail, string HH, string HHEmailAddr)
{
var fromAddress = new MailAddress(FROM_EMAIL, FROM_EMAIL_NAME);
var toAddress = new MailAddress(toEmail, fullName);
var toAddressHH = new MailAddress(HHEmailAddr, HH);
string fromPassword = GMAIL_PASSWORD;
List<String> htmlBody = new List<string>
{
"<html><body>",
. . .
"</body></html>"
};
var body = string.Join("", htmlBody.ToArray());
var smtp = new SmtpClient
{
Host = "smtp.gmail.com",
Port = 587,
EnableSsl = true,
DeliveryMethod = SmtpDeliveryMethod.Network,
UseDefaultCredentials = false,
Credentials = new NetworkCredential(fromAddress.Address, fromPassword)
};
using (var message = new MailMessage(fromAddress, toAddress)
{
Subject = subject,
Body = body,
IsBodyHtml = true
})
{
smtp.Send(message);
}
}
问题是我想将电子邮件发送给两个收件人,而不是一个。理论上我可以像这样在该代码的末尾添加另一条消息:
. . .
using (var messageHH = new MailMessage(fromAddress, toAddressHH)
{
Subject = subject,
Body = body,
IsBodyHtml = true
})
{
smtp.Send(messageHH);
}
}
...从一个代码块发送两封电子邮件,但我真正想做的是这样的:
List<MailAddress> recipients = new List<MailAddress>();
recipients.Add(toAddress);
recipients.Add(toAddressHH);
. . .
using (var message = new MailMessage(fromAddress, recipients)
...但是 MailMessage 的构造函数似乎没有这样的重载。如何将第二个收件人添加到从 gmail 发送的电子邮件中?作为共同收件人和 "CC" 收件人都很高兴知道。
更新
如果我确实尝试了建议:
using (var message = new MailMessage(fromAddress, toAddress)
{
Subject = subject,
Body = body,
To.Add("dplatypus@att.net", "Duckbilled Platypus")
})
...我得到:
无效的初始值设定项成员声明符
..和:
名称'To'在当前上下文中不存在
我通过以下排列得到相同结果:
To.Add(new MailAddress("dplatypus@att.net", "Duckbilled Platypus"))
查看 Microsoft's Documentation,您可以看到 MailMessage.To 属性 是一个 MailAddressCollection。
MailAddressCollection 有一个 Add() 方法,可以将值附加到集合中。
根据这些信息,您可以尝试这样的操作:
messageHH.To.Add(new MailAddress("recipient1@domain.com","Recipient1 Name"));
messageHH.To.Add(new MailAddress("recipient2@domain.com","Recipient2 Name"));
messageHH.To.Add(new MailAddress("recipient3@domain.com","Recipient3 Name"));
//etc...
我不得不更改声明的 "style",但这有效:
var message = new MailMessage(fromAddress, toAddress);
message.Subject = subject;
message.Body = body;
message.To.Add(new MailAddress("dplatypus@att.net", "Duckbilled Platypus"));
message.To.Add(new MailAddress("duckbill@att.net", "Platypus 2"));
smtp.Send(message);
我有这个工作代码可以使用我的 gmail 帐户发送电子邮件:
public static void SendEmail(string fullName, string toEmail, string HH, string HHEmailAddr)
{
var fromAddress = new MailAddress(FROM_EMAIL, FROM_EMAIL_NAME);
var toAddress = new MailAddress(toEmail, fullName);
var toAddressHH = new MailAddress(HHEmailAddr, HH);
string fromPassword = GMAIL_PASSWORD;
List<String> htmlBody = new List<string>
{
"<html><body>",
. . .
"</body></html>"
};
var body = string.Join("", htmlBody.ToArray());
var smtp = new SmtpClient
{
Host = "smtp.gmail.com",
Port = 587,
EnableSsl = true,
DeliveryMethod = SmtpDeliveryMethod.Network,
UseDefaultCredentials = false,
Credentials = new NetworkCredential(fromAddress.Address, fromPassword)
};
using (var message = new MailMessage(fromAddress, toAddress)
{
Subject = subject,
Body = body,
IsBodyHtml = true
})
{
smtp.Send(message);
}
}
问题是我想将电子邮件发送给两个收件人,而不是一个。理论上我可以像这样在该代码的末尾添加另一条消息:
. . .
using (var messageHH = new MailMessage(fromAddress, toAddressHH)
{
Subject = subject,
Body = body,
IsBodyHtml = true
})
{
smtp.Send(messageHH);
}
}
...从一个代码块发送两封电子邮件,但我真正想做的是这样的:
List<MailAddress> recipients = new List<MailAddress>();
recipients.Add(toAddress);
recipients.Add(toAddressHH);
. . .
using (var message = new MailMessage(fromAddress, recipients)
...但是 MailMessage 的构造函数似乎没有这样的重载。如何将第二个收件人添加到从 gmail 发送的电子邮件中?作为共同收件人和 "CC" 收件人都很高兴知道。
更新
如果我确实尝试了建议:
using (var message = new MailMessage(fromAddress, toAddress)
{
Subject = subject,
Body = body,
To.Add("dplatypus@att.net", "Duckbilled Platypus")
})
...我得到:
无效的初始值设定项成员声明符
..和:
名称'To'在当前上下文中不存在
我通过以下排列得到相同结果:
To.Add(new MailAddress("dplatypus@att.net", "Duckbilled Platypus"))
查看 Microsoft's Documentation,您可以看到 MailMessage.To 属性 是一个 MailAddressCollection。
MailAddressCollection 有一个 Add() 方法,可以将值附加到集合中。
根据这些信息,您可以尝试这样的操作:
messageHH.To.Add(new MailAddress("recipient1@domain.com","Recipient1 Name"));
messageHH.To.Add(new MailAddress("recipient2@domain.com","Recipient2 Name"));
messageHH.To.Add(new MailAddress("recipient3@domain.com","Recipient3 Name"));
//etc...
我不得不更改声明的 "style",但这有效:
var message = new MailMessage(fromAddress, toAddress);
message.Subject = subject;
message.Body = body;
message.To.Add(new MailAddress("dplatypus@att.net", "Duckbilled Platypus"));
message.To.Add(new MailAddress("duckbill@att.net", "Platypus 2"));
smtp.Send(message);