2012-03-16 29 views

Trả lời

28

bạn không thể sử dụng constructor MailAddress để xác định nhiều hóa đơn nhưng bạn phải sử dụng các đối tượng MailMessage như cho thấy bên dưới

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

cách khác là:

MailMessage msg = new MailMessage(); 
msg.To.Add("[email protected]"); 
msg.To.Add("[email protected]"); 
msg.To.Add("[email protected]"); 
msg.To.Add("[email protected]"); 
+0

sự khác biệt bw của tôi và của bạn là gì? –

+0

xem tôi biết điều này nhưng làm thế nào để thiết lập trong constructor chính nó? –

+0

Của anh ta có một đối tượng MailMessage để bắt đầu. Tôi đã thực sự giải thích một chút về điều này trong câu trả lời của tôi. câu trả lời đơn giản là 'mail.To' là một 'Thư viện địa chỉ email' cho phép nhiều địa chỉ e-mail. 'MailAddress' chỉ có một địa chỉ duy nhất (thực tế là số ít của nó có thể giúp bạn nhớ điều này). – Chris

2

Có thể có một câu hỏi tại sao bạn muốn làm điều này? Một cái gì đó như MailMessage.To là một MailAddressCollection có phương thức Add bị quá tải để lấy nhiều địa chỉ email trong một chuỗi, được phân tách bằng dấu phẩy (xem http://msdn.microsoft.com/en-us/library/ms144695.aspx).

Việc sử dụng thông thường cho đối tượng MailAddress là thêm chúng vào e-mail và nếu bạn có nhiều địa chỉ thì tôi giả sử bạn muốn thêm chúng vào một trong các trường Đến, CC, trong trường hợp này bạn độc đáo. Nếu có cái gì khác thì bạn sẽ phải cung cấp thêm ngữ cảnh cho những gì bạn đang cố gắng làm.

+0

lý do là tôi có mã được xác định trước mà tôi không được phép thay đổi. như vậy là có thể thêm nhiều id trong consturctor mailaddress hay không? –

+0

Không, bạn không thể. Đối tượng 'MailAddress' là cho một địa chỉ thư. http://msdn.microsoft.com/en-us/library/system.net.mail.mailaddress.aspx là các tài liệu hy vọng sẽ trả lời bất kỳ câu hỏi nào khác mà bạn có trên đối tượng. – Chris

18

Thực ra, dấu chấm phẩy không phải là dấu phân cách hợp lệ. Thật không may, MSDN không tài liệu này, đã phải tìm hiểu điều này một mình.

Nếu bạn muốn thêm nhiều địa chỉ hơn, hãy chia chúng bằng dấu phẩy. Và không gian sẽ chia tên hiển thị và địa chỉ email. "To" bất động sản chấp nhận định dạng sau:

vv ...

tôi đã viết thêm về chủ đề này in this blog post

+1

Trong ví dụ cuối cùng của bạn, tên "" [email protected], [email protected] "', MailMessage đã giải thích một thử nghiệm tôi đã làm dưới dạng "tên email" làm tiền tố email. Tôi phải làm như thế này: "" Adam Miller <[email protected]> "' –

0

@Tschareck

"Dấu phẩy được sử dụng để phân tách các phần tử trong danh sách địa chỉ thư. Kết quả là, dấu phẩy không nên được sử dụng trong các tên hiển thị không được trích dẫn trong danh sách. Các địa chỉ email sau đây sẽ được phép" trong http://msdn.microsoft.com/en-us/library/system.net.mail.mailaddress.aspx

Trân trọng, Anarud

1

Sử dụng một dấu phẩy (,) như phân chia thay cho dấu chấm phẩy (;).

Nếu nhiều e Các địa chỉ email được phân cách bằng dấu chấm phẩy (";") được chuyển vào tham số địa chỉ.

ví dụ mà làm việc

MailAddressCollection.Add (String):

using (MailMessage msg = new MailMessage()) 
{ 
    ... 
    msg.To.Add("[email protected], [email protected]"); 
    ... 
} 

MailAddressCollection.Add (MailAddress):

using (MailMessage msg = new MailMessage()) 
{ 
    ... 
    msg.To.Add(new MailAddress("[email protected]", "Vetrivelmp")); 
    msg.To.Add(new MailAddress("[email protected]", "Vetrivelmp1")); 
    ... 
} 
-2

Đây là những gì phù hợp với tôi.

MailMessage m_message = new MailMessage(); 
    string m_addys = "[email protected],[email protected]"; 
    m_message.To.Add(m_addys); 
+0

Điều đó không làm những gì bạn nghĩ. Điều đó sẽ chỉ gửi email đến [email protected] và tên của người đó sẽ xuất hiện dưới dạng [email protected] –

+0

Bạn nói đúng. Nó sẽ giống như thế này: "addy2 @ foo.com, addy1 @ foo.com". Và nó là một chuỗi không phải là một MailAddress. – smoore4

Các vấn đề liên quan