2014-12-05 40 views
0

如何用C#中的姓名發送多個電子郵件地址?目前我需要從數據庫加載名稱和電子郵件地址併發送它。如何用C#中的姓名發送多個電子郵件地址

  1. 所以我應該創建一個字符串數組來存儲名稱和電子郵件地址?

  2. 那麼我該如何發送電子郵件?必須將MailMessages()或MailAddress用於多個郵件地址?

我的代碼

while (sdrReader.Read()) 
{  
    ReceiverName = sdrReader["Name"].ToString(); 
    ReceiverEmail = sdrReader["EmailAddress"].ToString();   
} 

//郵件添加,在這裏我想要得到的多個電子郵件名稱和地址,然後發送。

mail.To.Add(new MailAddress(ReceiverEmail, ReceiverName)); 



sSQL = @"SELECT * FROM EmailSystem"; 

      try 
      { 
       scConnection.Open(); 
       scCommand = new SqlCommand(sSQL, scConnection); 
       sdrReader = scCommand.ExecuteReader(); 

       while (sdrReader.Read()) 
       { 

         ReceiverName = sdrReader["Name"].ToString(); 
         ReceiverEmail = sdrReader["EmailAddress"].ToString(); 

       } 
      } 



try 
      { 
       // Instance of Mail Server 
       MailMessage mail = new MailMessage(); 

       // Instance of SMTP Server 
       SmtpClient server = new SmtpClient(smtpAddress); 


       mail.To.Add(new MailAddress(ReceiverEmail, ReceiverName));    
      } 
+1

移動你的mail.To.Add在while循環中,你應該沒問題。 – Pleun 2014-12-05 11:17:50

+0

你能舉幾個例子嗎?剛纔我試着加載它,while while循環裏面沒有數據。 – 2014-12-05 11:19:00

+0

在這種情況下,它的問題是sdrReader。沒有足夠的代碼來診斷你現在發佈的問題 – Pleun 2014-12-05 11:20:41

回答

1

這是你可能會爲了實現自己的目標使用的草圖。我沒有觸及數據庫連接,我希望你檢查了你可以從數據庫中讀取數據。如果你有更多的問題,請不要猶豫。

// define the body of your mail 
var message = new MailMessage 
{ 
    From = new MailAddress("[email protected]", "John Doe"), 
    Subject = "Please don't spam me", 
    Body = "I will be very angry if you send me spam." 
}; 

// if you don't use gmail, then you have to specify your own settings!!! 
var client = new SmtpClient("smtp.gmail.com", 587) 
{ 
    EnableSsl = true, 
    Credentials = new NetworkCredential("[email protected]", "superPassword") 
}; 

// I skipped the creation of connection and command. 
// Don't forget to call Dispose when you finish to work with database. 
while (sdrReader.Read()) 
{ 
    var to = new MailAddress(sdrReader["EmailAddress"].ToString(), 
          sdrReader["Name"].ToString()); 
    message.To.Add(to); 
} 

client.Send(message); 
0

您可以自動運行Microsoft Outlook以編程方式發送電子郵件。有關更多信息,請參閱Using Automation to Send a Microsoft Outlook Message

+0

我想要的是在C#:) – 2014-12-05 10:55:49

+0

如果您不瞭解VB.NET,則可以使用任何[代碼轉換器](http://converter.telerik.com/)。 – 2014-12-05 11:33:45

0

使用數據集或數據表來代替數據讀取器,併爲每個數據迭代值。

希望以下鏈接將提供更好的指導發送批量電子郵件。

Send bulk email using asp.net and c#

Mass Emailing Functionality with C#, .NET 2.0, and Microsoft® SQL Server 2005 Service Broker

+0

你能舉幾個例子嗎?我試圖使用ArrayList,但我的代碼無法運行。我仍在調試它。所以你建議的是 1.使用Datatable加載數據 2.將數據從數據表放入ArrayList 3.然後將數據從ArrayList發送回電子郵件發送權? – 2014-12-05 11:15:49

+0

在這裏,我只寫了僞代碼。 1.將數據綁定到數據表2.獲取名稱和電子郵件並將其添加到For..Each循環內的郵件消息 – Balamurugan 2014-12-05 11:19:21

+0

而不是Pseudo,你可以在C#中爲我編寫一個示例嗎?因爲這個,我有點頭痛。 – 2014-12-05 12:07:00

相關問題