Как отправить почту без пароля с помощью 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-сервер, который позволяет отправлять электронные письма.