VB.net sendmail ошибка SMTP - PullRequest
       13

VB.net sendmail ошибка SMTP

0 голосов
/ 23 февраля 2011

Я использую следующий код для отправки электронного письма из моего веб-приложения vb.net.

Public Function SendMail(ByVal strTo As String, ByVal strFrom As String, _
                            ByVal strSubject As String, ByVal strBody As String) As String
        Try

            Dim SmtpServer As New SmtpClient()
            Dim mail As New MailMessage()
            SmtpServer.Credentials = New _
            Net.NetworkCredential("ns1.jasmine.arvixe.com", "<password>")
            SmtpServer.Port = 587
            SmtpServer.Host = "mail.<mydomain>.com"
            mail = New MailMessage()
            mail.From = New MailAddress(strFrom)
            mail.To.Add(strTo)
            mail.Subject = strSubject
            mail.IsBodyHtml = True
            mail.Body = strBody
            SmtpServer.Send(mail)
            Return True
        Catch ex As Exception
            Return False
        End Try
    End Function

Это прекрасно работает, когда я использую свой личный адрес электронной почты live.co.uk в качестве значения strFrom или даже выдуманный адрес электронной почты. Но когда я использую другой (contact@mydomain.com), который совершенно действителен и работает, я получаю следующую ошибку:

"SMTP-серверу требуется безопасное соединение, или клиент не прошел проверку подлинности. Ответ сервера был следующим: требуется проверка подлинности SMTP."

Почему это происходит?

1 Ответ

1 голос
/ 23 февраля 2011

После просмотра спецификации RFC 2554 (http://www.faqs.org/rfcs/rfc2554.html) я полагаю, что на принимающем / ретранслирующем сервере используется какая-то схема аутентификации, которая гарантирует, что электронная почта действительно пришла от того места, на который указывает strFrom (действительная учетная запись на указанном сервере после @).

Особый интерес представляет пункт 5 этой спецификации "Параметр AUTH для команды MAIL FROM".

Поскольку этот «параметр AUTH для команды MAIL FROM» не используется повсеместно, он может объяснить, почему все работает для одних адресов электронной почты, а не для других.

...