-1

重複の可能性:
C# を使用して複数のアドレス/受信者に電子メールを送信できない

以下のコードを使用して、スクリプトタスクでメールを送信しました

 string MailFromName = "Admin";
            System.Net.Mail.SmtpClient mailobj = new System.Net.Mail.SmtpClient();
            System.Net.Mail.MailAddress MailFrom = new System.Net.Mail.MailAddress(MailFromEmail, MailFromName);
            System.Net.Mail.MailAddress MailTo = new System.Net.Mail.MailAddress(MailToEmail, MailToEmail);
            System.Net.Mail.MailMessage mailmsg = new System.Net.Mail.MailMessage(MailFrom, MailTo);
            mailmsg.IsBodyHtml = true;
            mailmsg.Subject = strMessageSubject;
            mailmsg.Body = strMessageBody;
            mailobj.Host = strSMTPServerName;
            mailobj.Send(mailmsg);

MailToEmail を「myaddress@myMail.com」として使用している場合、つまり 1 つのメール アドレスに対して正常に動作しています。

しかし、リストに複数のアドレスがある場合、これはメールを送信しません(失敗することもありません)

例: "MyAdress@MyMail.com; MySecondAddress@MyMail.com"

これを解決するには?

新しいコードを編集

 string MailFromName = "Admin";
            System.Net.Mail.SmtpClient mailobj = new System.Net.Mail.SmtpClient();
            System.Net.Mail.MailAddress MailFrom = new System.Net.Mail.MailAddress(MailFromEmail, MailFromName);
            System.Net.Mail.MailAddress MailTo = new System.Net.Mail.MailAddress(MailToEmail, MailToEmail);
            System.Net.Mail.MailMessage mailmsg = new System.Net.Mail.MailMessage(MailFrom, MailTo);
            mailmsg.IsBodyHtml = true;
            mailmsg.Subject = strMessageSubject;
            mailmsg.Body = strMessageBody;
            foreach (string str in multipleToMsg)
            {
                mailmsg.To.Add(str);
            }


            mailobj.Host = strSMTPServerName;
            mailobj.Send(mailmsg);
4

3 に答える 3

4

受信者をどの程度正確に追加しているかを示していません。ただし、複数の受信者を追加するには、「宛先」コレクションに追加します。

MailMessage message = new MailMessage();
message.To.Add("sillyjoe@stackoverflow.com");

「宛先」はMailAddressesのコレクションです。それをそのコレクションに追加し、電子メールアドレスをすべて1つのMailAddressオブジェクトに連結しようとしていないことを確認してください。

于 2012-09-11T13:51:04.430 に答える
2

MSDN: MailMessage Classによると、「To」プロパティは MailAddresses のコレクションです。

だからあなたはただのようなことをする必要があります

mailmsg.To.Add(new System.Net.Mail.MailAddress(MailToEmail, MailToEmail)); 
mailmsg.To.Add(new System.Net.Mail.MailAddress(MailToEmail2, MailToEmail2))

またはforeachループで

//get email addresses into a collection called emailAdds
foreach (var emailAdd in emailAdds)
{
    mailmsg.To.Add(new System.Net.Mail.MailAddress(emailAdd, emailAdd )); 
}
于 2012-09-11T13:52:00.150 に答える
0

複数のアドレスを指定するには、 MailAddressCollectionであるToプロパティを使用する必要があります

message.To.Add("one@example.com, one@example.com"));
message.To.Add("two@example.com, two@example.com"));
于 2012-09-11T13:51:30.500 に答える