BlackWidowScarlet Ответов: 1

Ошибка при отправке почты: ошибка smtpexception при отправке почты


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

SMTP.Send(Email)
- ошибка в этом вопросе

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

Вот мой код

Private Sub SendMail(ByVal vEmail As String, ByVal vName As String, ByVal vDetail As String)

        Dim Txt As String
        Dim tmp1 As String
        Dim tmp As String
        Dim client As New Net.Mail.SmtpClient()
        Mailer = New Net.Mail.MailMessage
        With Mailer

            'Dim SendRes As String
            Dim SMTP As New Net.Mail.SmtpClient("************")
            Dim Email As New Net.Mail.MailMessage()
            SMTP.Port = 25
            SMTP.UseDefaultCredentials = False
            SMTP.Credentials = New Net.NetworkCredential("******", "*******")
            SMTP.EnableSsl = True

            Email = New Net.Mail.MailMessage()
            'From
            Email.From = New Net.Mail.MailAddress("************")

            Txt = ""

            If vEmail = "none" Then
                vEmail = GetSenderEmail()
                Txt = vbCrLf
                Txt = Txt & vbCrLf
                Txt = Txt & "NOTE:"
                Txt = Txt & vbCrLf
                Txt = Txt & "Please update email address."
                Txt = Txt & vbCrLf
                Txt = Txt & "*** Please add the email address of " & vName & " in your vendors profile."
            Else

                Email.CC.Add("*********")
                'GetSenderEmail()

            End If

            'To
            Email.To.Add("*********")

            'Subject
            Email.Subject = "Payroll Account Credit (Please Do Not Reply)"

            'BODY

            tmp1 = "Your payroll account was/will be credited on  " & DTdateCredit.Value & "" & vbNewLine
            tmp = tmp1 & vbNewLine
            tmp = tmp1 & "***Below are the details:" & vbNewLine
            tmp = tmp1 & vbNewLine
            tmp = tmp1 & vDetail
            tmp = tmp1 & tmp & Txt

            Email.Body = tmp
            Email.IsBodyHtml = False

            SMTP.Send(Email)
            MsgBox("Sent Successfully")
            Email.Dispose()


        End With
        Mailer = Nothing

    End Sub

1 Ответов

Рейтинг:
11

Jochen Arndt

Это не может быть решена без наличия значимого сообщения об ошибке.

Чтобы получить это, заключите свой код в блок try и сообщите о пойманных исключениях:

Try
    ' Email sending code here
Catch ex As Exception
    MsgBox(ex.ToString)
End Try
Затем сообщение должно содержать код ошибки SMTP и текст, сообщающий вам, почему Почта не может быть отправлена, например недействительные учетные данные, невозможность ретрансляции, неизвестный получатель, почтовый ящик заполнен.


BlackWidowScarlet

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

System.Net.Mail.SmtpException: Failure sending mail.
System.Net.WebException: Unable to connect to the remote server
System.Net.Sockets.SocketException: An attempt was made to access a socket in a way forbidden by its access
permissions 13.198.8.181.25 
at System.Net.Sockets.Socket.DoConnect(EndPoint endPointSnapshot, SocketAddress socketAddress)
at System.Net.Sockets.Socket.InternalConnect(EndPoint remoteEP)
at System.Net.ServicePoint.ConnectSocketInternal(Boolean connectFailure, Socket s4, Socket s6, Socket& socket,
IPAddress& address, ConnectSocketState state, IAsyncResult asyncresult, Int32 timeout, Exceptiona& exception)

Jochen Arndt

Наиболее вероятная причина этого сообщения заключается в том, что соединение было заблокировано брандмауэром Windows. Если это является причиной (проверьте журнал событий брандмауэра), добавьте свое приложение в список разрешенных программ в настройках брандмауэра.

Но вы должны позволить блоку Try работать с ошибками, которые выходят за рамки вашего приложения (любые ошибки, связанные с SMTP и сетью, такие как unknwon user и mailbox full). В противном случае ваше приложение будет прекращено после таких ошибок.