Как отправить электронное письмо нескольким получателям, используя asp.net? - PullRequest
4 голосов
/ 29 сентября 2010

У меня есть функция sendmail, которая работает для одного получателя.Если я передаю что-то вроде «email1@test.com; email2@test.com» в ToEmail, я получаю сообщение об ошибке;не допускается в заголовке сообщения.Что я делаю не так?

Вот моя функция SendMail:

 Public Function SendMail(ByVal ToEmail As String, ByVal FromEmail As String, ByVal Subject As String, ByVal Body As String, Optional ByVal bccEmail As String = "", Optional ByVal bIsHTML As Boolean = False) As Boolean
    Try
        Dim msgMail As New MailMessage(FromEmail, ToEmail, Subject, Body)
        msgMail.IsBodyHtml = bIsHTML
        If bccEmail <> "" Then
            msgMail.Bcc.Add(bccEmail)
        End If
        Dim smtp As New SmtpClient
            smtp.Host = "myServer"

        smtp.Send(msgMail)
        SendMail = True
    Catch ex As Exception
        DoTrace(ex.Source, ex.Message)
        SendMail = False
    End Try
End Function

Ответы [ 4 ]

6 голосов
/ 29 сентября 2010

Адреса должны быть разделены запятыми, а не точками с запятой.

5 голосов
/ 29 сентября 2010

Вам необходимо использовать свойство To, которое является MailAddressCollection, и вызвать метод Add() для индивидуального добавления адресов электронной почты.

Если вы передаете адреса электронной почты в свою функциюв виде списка, разделенного точкой с запятой, затем просто введите String.Split() и добавьте их в свойство To в цикле итерации.

1 голос
/ 29 сентября 2010

Я бы порекомендовал использовать MailMergeLib
http://www.codeproject.com/KB/IP/MailMergeLib.aspx

Это также исправляет кучу ошибок в почтовых классах .NET.

0 голосов
/ 29 сентября 2010

измените ваш toEmail со строки на MailAddressCollection и все готово

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...