2012-09-11 26 views
-1

可能重複:
Unable to send an email to multiple addresses/recipients using 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作爲「[email protected]」,即一個電子郵件地址時,正常工作

但這不發送任何郵件(也忽略了最低失敗),當我有多個ADRESS到列表

例如:「[email protected]; [email protected]

如何解決此問題?

編輯新代碼

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); 
+2

_如何添加多個地址?這似乎是關鍵的代碼,它缺少。 –

+0

您的郵件MailToEmail變量是逗號分隔的字符串嗎? –

+0

MailToEmail是一個字符串變量,它有多個地址與**分隔; ** – Zerotoinfinity

回答

4

你未顯示你究竟是如何添加收件人,但添加多個收件人你添加到「收件人」:

MailMessage message = new MailMessage(); 
message.To.Add("[email protected]"); 

「收件人」是MailAddresses的集合,請確保將它添加到該收藏夾中n並且不試圖將電子郵件地址全部連接成一個MailAddress對象。

+0

我相信我在這裏做同樣的事情System.Net.Mail.MailMessage mailmsg = new System.Net.Mail.MailMessage(MailFrom,MailTo); – Zerotoinfinity

+0

不完全是,構造函數允許您只傳入一個收件人。如果你想給它多個收件人,你不能使用構造函數,你必須在之後添加到集合中。 – Arran

+0

那麼我該如何修改我的當前代碼:-(我沒有那麼做。當我創建郵件對象時,我無法從地址 – Zerotoinfinity

2

Accoring到MSDN: MailMessage Class 「到」 財產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)); 
} 
+0

由於我的郵件地址來自數據庫,我可能不知道有多少地址在那裏。 :-( – Zerotoinfinity

+0

是的,你可以使用for/foreach循環,我只是用它來告訴你如何添加多個項目 – Mauro

相關問題