Использование smtpclient для отправки электронной почты за пределы моего домена не работает - PullRequest
1 голос
/ 16 марта 2012

Я пытаюсь отправить почту с помощью SmtpClient () в моей программе Winforms VB.Net

Вот код:

Dim SmtpServer As New SmtpClient()
        Dim mail As New MailMessage()
        Dim _Attachment As String

        If gcloUtilities.GetUser(mHostName, mEMailUser, mEMailPassword, mFromEMail) = False Then
            Exit Sub
        End If
        SmtpServer.Credentials = New Net.NetworkCredential(mEMailUser, mEMailPassword)
        SmtpServer.Port = 587
        SmtpServer.Host = mHostName
        mail = New MailMessage()
        mail.From = New MailAddress(mFromEMail)
        mail.To.Add(mfrmSendAnEmail.txtTo.Text)
        mail.Subject = mfrmSendAnEmail.txtSubject.Text

        _Attachment = mDirectory & "\" & gcloGlobals.DocumentName & ".pdf"
        Dim oAttch As Attachment = New Attachment(_Attachment)
        mail.Attachments.Add(oAttch)

        mail.Body = mfrmSendAnEmail.txtBody.Text
        SmtpServer.Send(mail)

В качестве имени хоста я использую метапросистемы mail dot dot com, имя пользователя и пароль - это имя пользователя и пароль, которые я использую для входа на свой почтовый сервер. Это работает, когда адрес To находится в моем домене. Например, Боб на знак метапросистемы.com. Это не работает, когда я отправляю на электронную почту за пределами моего домена. Я получаю это исключение в моем блоке catch:

"Имя почтового ящика не разрешено. Ответ сервера: извините, этот домен отсутствует в моем списке разрешенных rcpthosts (# 5.7.1)"

Не имеет значения, включаю ли я вложение или нет. Я считаю, что проблема связана с моей веб-хостинговой компанией, но до сих пор они не нашли решения. Мне нужен совет о том, что им сказать, чтобы это исправить. В качестве альтернативы, если бы я мог исправить это на моем конце, это было бы здорово.

Ответы [ 4 ]

0 голосов
/ 05 апреля 2012

Спасибо за все предложения, моя принимающая компания дала мне ответ.Мне нужно использовать bob at-sign metaprosystems.com вместо того, чтобы просто использовать его как пользователя.Правильное имя пользователя электронной почты может зависеть от вашей принимающей компании.

0 голосов
/ 16 марта 2012

Вы можете попытаться отправить электронное письмо с помощью SMTP-сервера Gmail вместо собственного имени хоста.

0 голосов
/ 16 марта 2012

Может потребоваться добавить запись mx, чтобы разрешить подключение к серверу SMTP

просто мысль ...

0 голосов
/ 16 марта 2012

Я не уверен, что это корневая проблема, но вы можете попробовать включить SSL для соединения.

SmtpServer.EnableSsl = True

РЕД (1) Также возможно, что почтовый сервер реализует форму POP-BEFORE-SMTP перед передачей сообщений за пределы обслуживаемого домена, и в этом случае вам может потребоваться сначала установить соединение POP, прежде чем пытаться отправить ваше сообщение. Здесь - описание того, как реализовать клиент POP3 в .NET.

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