mufeed k Ответов: 1

Как отправить почту без пароля с помощью VB.NET


Привет...


У меня есть один vb.net консольное приложение, которое работает на многих клиентских сайтах для отправки электронной почты. Все клиенты предоставили идентификатор электронной почты, имя сервера, порт и пароль.
но этот клиент говорит, что у него нет пароля для электронной почты. они используют свою почту без пароля.

Я попытался с помощью кода от google отправить электронную почту без пароля, который работает с моим почтовым идентификатором компании. но все же, на стороне клиента это бросает ошибку.


the smtp server requires a secure connection or the client was not authenticated 5.7 57


Что я уже пробовал:

Try
            ServicePointManager.ServerCertificateValidationCallback = _
        New System.Net.Security.RemoteCertificateValidationCallback(AddressOf customCertValidation)

            Dim Smtp_Server As New SmtpClient
            Dim mailobj As New MailMessage()
            Smtp_Server.UseDefaultCredentials = False
            If rbtnWithPass.Checked = True Then
                Smtp_Server.Credentials = New Net.NetworkCredential(txtFrom.Text.Trim, txtPassword.Text.Trim)
                mailobj.Subject = "Test mail with password"
            Else
                Smtp_Server.Credentials = System.Net.CredentialCache.DefaultCredentials
                mailobj.Subject = "Test mail without password"
            End If


            Smtp_Server.Port = txtPort.Text.Trim
            Smtp_Server.EnableSsl = False
            If rbtnServer.Checked = True Then
                Smtp_Server.Host = txtServerName.Text.Trim
            Else
                Smtp_Server.Host = txtServerIP.Text.Trim
            End If

            mailobj = New MailMessage()
            mailobj.From = New MailAddress(txtFrom.Text.Trim)
            Dim toArr As String()
            toArr = txtTo.Text.Trim.Split(",")
            For Each toStr As String In toArr
                Dim val As String = toStr.Replace(vbLf, "")
                mailobj.[To].Add(val)
            Next
            Dim ccArr As String()
            ccArr = txtTo.Text.Trim.Split(",")
            For Each ccStr As String In ccArr
                Dim val As String = ccStr.Replace(vbLf, "")
                mailobj.CC.Add(New Net.Mail.MailAddress(val))
            Next
            mailobj.Body = txtBody.Text.Trim + vbLf + vbLf            

            Smtp_Server.Send(mailobj)

            MsgBox("Email send successfully. From:" & txtFrom.Text.Trim & " To: " & txtTo.Text.Trim & " Time : " & Now)
        Catch ex As Exception
            MsgBox(ex.ToString)
        End Try



Private Function customCertValidation(ByVal sender As Object, _
                                              ByVal cert As X509Certificate, _
                                              ByVal chain As X509Chain, _
                                              ByVal errors As Net.Security.SslPolicyErrors) As Boolean

        Return True

Graeme_Grant

"SMTP-сервер требует защищенного соединения или клиент не прошел проверку подлинности 5.7 57"

Ответ таков: вы не можете.

F-ES Sitecore

Сетевые учетные данные предназначены для smtp-сервера, через который вы отправляете сообщение, и не связаны с учетной записью электронной почты, с которой вы отправляете сообщение "from". Если у клиента есть пароль, прикрепленный к его учетной записи, или нет, это не имеет значения, вам необходимо предоставить правильные учетные данные на ваш smtp-сервер, который позволяет отправлять электронные письма.

1 Ответов

Рейтинг:
2

Dave Kreskowiak

МММ... Какую часть этого послания вы не понимаете?

Цитата:
smtp-сервер требует безопасного подключения или клиент не прошел проверку подлинности

Используемый сервер требует имени пользователя и пароля или иного аутентифицированного/защищенного соединения для отправки электронной почты.

Отправка электронной почты на любой сервер, который они используют, без пароля-это не вариант.