Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/email/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何在gmail电子邮件中包含多个收件人?_C#_Email_Smtp_Mailmessage - Fatal编程技术网

C# 如何在gmail电子邮件中包含多个收件人?

C# 如何在gmail电子邮件中包含多个收件人?,c#,email,smtp,mailmessage,C#,Email,Smtp,Mailmessage,我有这个工作代码,可以使用我的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);

我有这个工作代码,可以使用我的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);
    }
}
…从一个代码块发送两封电子邮件,但我真正想做的是:

List<MailAddress> recipients = new List<MailAddress>();
recipients.Add(toAddress);
recipients.Add(toAddressHH);
. . .
using (var message = new MailMessage(fromAddress, recipients)
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...
…我得到:

无效的初始值设定项成员声明符

…和:

当前上下文中不存在名称“To”

我通过以下排列得到相同的结果:

To.Add(new MailAddress("dplatypus@att.net", "Duckbilled Platypus"))
查看,您可以看到MailMessage.To属性是一个MailAddressCollection

具有一个Add()方法,该方法将向集合追加值

有了这些信息,您可以尝试以下方法:

List<MailAddress> recipients = new List<MailAddress>();
recipients.Add(toAddress);
recipients.Add(toAddressHH);
. . .
using (var message = new MailMessage(fromAddress, recipients)
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...
我不得不改变声明的“风格”,但这是可行的:

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);
分别使用
message.To.Add()
message.CC.Add()
message.Bcc.Add()
添加收件人。