2008-11-19 17 views
10

Próbuję użyć klasy System.Net.Mail.MailMessage w języku C#, aby utworzyć wiadomość e-mail wysłaną na listę adresów e-mail za pośrednictwem BCC. Nie chcę dołączać adresu TO, ale wydaje mi się, że muszę, ponieważ otrzymuję wyjątek, jeśli używam pustego ciągu dla adresu TO w konstruktorze MailMessage. Błąd stwierdza:Wysyłanie poczty przez SMTP w języku C# przy użyciu BCC bez TO

ArgumentException 
The parameter 'addresses' cannot be an empty string. 
Parameter name: addresses 

Z pewnością możliwe jest wysłanie e-maila tylko BCC jak to nie jest ograniczenie SMTP.

Czy istnieje sposób obejścia tego?

+0

będę narzekać na SM na ten temat. To jednak nie pomaga w obecnej sytuacji. – Tim

+1

Narzekanie zawsze pomaga. Daje ciepłe uczucie nienawiści. – bzlm

Odpowiedz

8

Myślę, że jeśli skomentujesz całą linię emailMessage.To.Add(sendTo);, wyśle ​​ona wiadomość e-mail z pustym polem To.

+0

To jedyne dokładne rozwiązanie dla OP. Dzięki! +1 –

2

Musisz podać adres DO. Po prostu wyślij go na "śmieciowy" adres e-mail, na który nie masz nic przeciwko wysyłaniu wiadomości.

+0

Nie sądzę, że musisz podać adres zamieszkania. –

11

Wykonuj to samo, co w przypadku wewnętrznych wiadomości e-mail, w których nie chcesz, aby ludzie odpowiadali na wszystkie pytania przez cały czas.

Wyślij go do samemu (lub fikcyjnemu kontu), a następnie dodaj swoją listę BCC.

1

Po prostu nie wywołuj metody Add w To-property.

0

Należy podać adres zamieszkania. Tak było od czasu, gdy oryginalne sendmailowe wdrożenia w latach 80. i wszystkie mailery SMTP, o których wiem, mają ten sam wymóg. Możesz po prostu użyć fikcyjnego adresu dla do.

0

Można użyć tymczasowego fałszywy adres następnie usunąć go po prostu:

MailMessage msg = new MailMessage(from, "[email protected]"); 
msg.To.Clear(); 
foreach (string email in bcc.Split(';').Select(x => x.Trim()).Where(x => x != "")) 
{ 
    msg.Bcc.Add(email); 
} 
Powiązane problemy