2011-09-21 37 views

Trả lời

77
MailMessage msg = new MailMessage(); 
msg.Body = ....; 
msg.To.Add(...); 
msg.To.Add(...); 

SmtpClient smtp = new SmtpClient(); 
smtp.Send(msg); 

ToMailAddressCollection, vì vậy bạn có thể thêm số lượng địa chỉ mình cần.

Nếu bạn cần một tên hiển thị, hãy thử này:

MailAddress to = new MailAddress(
    String.Format("{0} <{1}>",display_name, address)); 
+3

gì về từ địa chỉ? – Denish

+0

@Denish: nếu bạn cần tên hiển thị, hãy xem bài đăng đã chỉnh sửa của tôi .. – Marco

+0

@Denish: sử dụng thuộc tính 'msg.From' ... có vấn đề gì với điều đó? ;) – Marco

22

thử này ..

using System; 
using System.Net.Mail; 

public class Test 
{ 
    public static void Main() 
    { 
     SmtpClient client = new SmtpClient("smtphost", 25); 
     MailMessage msg = new MailMessage("[email protected]", "[email protected],[email protected]"); 
     msg.Subject = "sdfdsf"; 
     msg.Body = "sdfsdfdsfd"; 
     client.UseDefaultCredentials = true; 
     client.Send(msg); 
    } 
} 
+0

nếu tôi muốn hiển thị tên trong địa chỉ từ ... làm cách nào tôi có thể làm điều đó ??? – Denish

10

StewieFG gợi ý có giá trị nhưng nếu bạn muốn thêm tên người nhận sử dụng này, với những gì Marco đã đăng ở trên nhưng là địa chỉ email đầu tiên và tên hiển thị thứ hai:

msg.To.Add(new MailAddress("[email protected]","Your name 1")); 
msg.To.Add(new MailAddress("[email protected]","Your name 2")); 
-1
MailAddress fromAddress = new MailAddress (fromMail,fromName); 
MailAddress toAddress = new MailAddress(toMail,toName); 
MailMessage message = new MailMessage(fromAddress,toAddress); 
message.Subject = subject; 
message.Body = body; 
SmtpClient smtp = new SmtpClient() 
{ 
    Host = host, Port = port, 
    enabHost = "smtp.gmail.com", 
    Port = 25, 
    EnableSsl = true, 
    UseDefaultCredentials = true, 
    Credentials = new NetworkCredentials (fromMail, password) 
}; 
smtp.send(message); 
+0

vui lòng định dạng mã của bạn tốt hơn và cố gắng biên dịch mã trước khi đăng. "mới SmtpClient() {enabHost =" smtp.gmail.com ",}' sẽ không biên dịch. Đăng mã biên dịch. – TarasB

9

Tôi nghĩ bạn có thể sử dụng mã này để có Danh sách các địa chỉ đi có một Tên hiển thị (cũng khác nhau):

//1.The ACCOUNT 
MailAddress fromAddress = new MailAddress("[email protected]", "my display name"); 
String fromPassword = "password"; 

//2.The Destination email Addresses 
MailAddressCollection TO_addressList = new MailAddressCollection(); 

//3.Prepare the Destination email Addresses list 
foreach (var curr_address in mailto.Split(new [] {";"}, StringSplitOptions.RemoveEmptyEntries)) 
{ 
    MailAddress mytoAddress = new MailAddress(curr_address, "Custom display name"); 
    TO_addressList.Add(mytoAddress); 
} 

//4.The Email Body Message 
String body = bodymsg; 

//5.Prepare GMAIL SMTP: with SSL on port 587 
var smtp = new SmtpClient 
{ 
    Host = "smtp.gmail.com", 
    Port = 587, 
    EnableSsl = true, 
    DeliveryMethod = SmtpDeliveryMethod.Network, 
    Credentials = new NetworkCredential(fromAddress.Address, fromPassword), 
    Timeout = 30000 
}; 


//6.Complete the message and SEND the email: 
using (var message = new MailMessage() 
     { 
      From = fromAddress, 
      Subject = subject, 
      Body = body, 
     }) 
{ 
    message.To.Add(TO_addressList.ToString()); 
    smtp.Send(message); 
} 
+0

..thanks cũng để Brendan Green;) –

1
namespace WebForms.Code.Logging { 

    public class ObserverLogToEmail: ILog { 
     private string from; 
     private string to; 
     private string subject; 
     private string body; 
     private SmtpClient smtpClient; 
     private MailMessage mailMessage; 
     private MailPriority mailPriority; 
     private MailAddressCollection mailAddressCollection; 
     private MailAddress fromMailAddress, toMailAddress; 
     public MailAddressCollection toMailAddressCollection { 
      get; 
      set; 
     } 
     public MailAddressCollection ccMailAddressCollection { 
      get; 
      set; 
     } 
     public MailAddressCollection bccMailAddressCollection { 
      get; 
      set; 
     } 

     public ObserverLogToEmail(string from, string to, string subject, string body, SmtpClient smtpClient) { 
      this.from = from; 
      this.to = to; 
      this.subject = subject; 
      this.body = body; 

      this.smtpClient = smtpClient; 
     } 

     public ObserverLogToEmail(MailAddress fromMailAddress, MailAddress toMailAddress, 
     string subject, string content, SmtpClient smtpClient) { 
      try { 
       this.fromMailAddress = fromMailAddress; 
       this.toMailAddress = toMailAddress; 
       this.subject = subject; 
       this.body = content; 

       this.smtpClient = smtpClient; 

       mailAddressCollection = new MailAddressCollection(); 

      } catch { 
       throw new SmtpException(SmtpStatusCode.CommandNotImplemented); 
      } 
     } 

     public ObserverLogToEmail(MailAddressCollection fromMailAddressCollection, 
     MailAddressCollection toMailAddressCollection, 
     string subject, string content, SmtpClient smtpClient) { 
      try { 
       this.toMailAddressCollection = toMailAddressCollection; 
       this.ccMailAddressCollection = ccMailAddressCollection; 
       this.subject = subject; 
       this.body = content; 

       this.smtpClient = smtpClient; 

      } catch { 
       throw new SmtpException(SmtpStatusCode.CommandNotImplemented); 
      } 
     } 

     public ObserverLogToEmail(MailAddressCollection toMailAddressCollection, 
     MailAddressCollection ccMailAddressCollection, 
     MailAddressCollection bccMailAddressCollection, 
     string subject, string content, SmtpClient smtpClient) { 
      try { 
       this.toMailAddressCollection = toMailAddressCollection; 
       this.ccMailAddressCollection = ccMailAddressCollection; 
       this.bccMailAddressCollection = bccMailAddressCollection; 

       this.subject = subject; 
       this.body = content; 

       this.smtpClient = smtpClient; 

      } catch { 
       throw new SmtpException(SmtpStatusCode.CommandNotImplemented); 
      } 
     }#region ILog Members 

     // sends a log request via email. 
     // actual email 'Send' calls are commented out. 
     // uncomment if you have the proper email privileges. 
     public void Log(object sender, LogEventArgs e) { 
      string message = "[" + e.Date.ToString() + "] " + e.SeverityString + ": " + e.Message; 
      fromMailAddress = new MailAddress("", "HaNN", System.Text.Encoding.UTF8); 
      toMailAddress = new MailAddress("", "XXX", System.Text.Encoding.UTF8); 

      mailMessage = new MailMessage(fromMailAddress, toMailAddress); 
      mailMessage.Subject = subject; 
      mailMessage.Body = body; 

      // commented out for now. you need privileges to send email. 
      // _smtpClient.Send(from, to, subject, body); 
      smtpClient.Send(mailMessage); 
     } 

     public void LogAllEmails(object sender, LogEventArgs e) { 
      try { 
       string message = "[" + e.Date.ToString() + "] " + e.SeverityString + ": " + e.Message; 

       mailMessage = new MailMessage(); 
       mailMessage.Subject = subject; 
       mailMessage.Body = body; 

       foreach(MailAddress toMailAddress in toMailAddressCollection) { 
        mailMessage.To.Add(toMailAddress); 

       } 
       foreach(MailAddress ccMailAddress in ccMailAddressCollection) { 
        mailMessage.CC.Add(ccMailAddress); 
       } 
       foreach(MailAddress bccMailAddress in bccMailAddressCollection) { 
        mailMessage.Bcc.Add(bccMailAddress); 
       } 
       if (smtpClient == null) { 
        var smtp = new SmtpClient { 
         Host = "smtp.gmail.com", 
         Port = 587, 
         EnableSsl = true, 
         DeliveryMethod = SmtpDeliveryMethod.Network, 
         Credentials = new NetworkCredential("yourEmailAddress", "yourPassword"), 
         Timeout = 30000 
        }; 
       } else smtpClient.SendAsync(mailMessage, null); 
      } catch (Exception) { 

       throw; 
      } 
     } 
    } 
1

Tôi đã qua sử dụng "cho" nhà điều hành.

try 
{ 
    string s = textBox2.Text; 
    string[] f = s.Split(','); 

    for (int i = 0; i < f.Length; i++) 
    { 
     MailMessage message = new MailMessage(); // Create instance of message 
     message.To.Add(f[i]); // Add receiver 
     message.From = new System.Net.Mail.MailAddress(c);// Set sender .In this case the same as the username 
     message.Subject = label3.Text; // Set subject 
     message.Body = richTextBox1.Text; // Set body of message 
     client.Send(message); // Send the message 
     message = null; // Clean up 
    } 

} 

catch (Exception ex) 
{ 

    MessageBox.Show(ex.Message); 
} 
2

Mã của tôi để giải quyết vấn đề này:

private void sendMail() 
{ 
    //This list can be a parameter of metothd 
    List<MailAddress> lst = new List<MailAddress>(); 

    lst.Add(new MailAddress("[email protected]")); 
    lst.Add(new MailAddress("[email protected]")); 
    lst.Add(new MailAddress("[email protected]")); 
    lst.Add(new MailAddress("[email protected]")); 


    try 
    { 


     MailMessage objeto_mail = new MailMessage(); 
     SmtpClient client = new SmtpClient(); 
     client.Port = 25; 
     client.Host = "10.15.130.28"; //or SMTP name 
     client.Timeout = 10000; 
     client.DeliveryMethod = SmtpDeliveryMethod.Network; 
     client.UseDefaultCredentials = false; 
     client.Credentials = new System.Net.NetworkCredential("[email protected]", "password"); 
     objeto_mail.From = new MailAddress("[email protected]"); 

     //add each email adress 
     foreach (MailAddress m in lst) 
     { 
      objeto_mail.To.Add(m); 
     } 


     objeto_mail.Subject = "Sending mail test"; 
     objeto_mail.Body = "Functional test for automatic mail :-)"; 
     client.Send(objeto_mail); 


    } 
    catch (Exception ex) 
    { 
     MessageBox.Show(ex.Message); 
    } 
} 
+0

Đảm bảo vứt bỏ objecto_mail sau khi gửi. Hoặc sử dụng khối Sử dụng. – jriver27

0
string[] MultiEmails = email.Split(','); 
foreach (string ToEmail in MultiEmails) 
{ 
    message.To.Add(new MailAddress(ToEmail)); //adding multiple email addresses 
} 
Các vấn đề liên quan