Отправка почты из веб-приложения vb. net с помощью SMTP Office 365 - PullRequest
0 голосов
/ 10 июля 2020

Добрый день, я надеюсь, что кто-то может мне помочь. Я пробовал все другие решения, которые мог найти, но они, похоже, не работают. В моем веб-приложении есть функция, которая позволяет нашим клиентам отправлять почту сотруднику, настройки почтового сервера сохраняются в таблице в базе данных SQL. Это отлично работает для всех клиентов, не использующих Office 365 для своей почты, теперь у нас есть несколько клиентов, работающих с Office 365, и при попытке отправки почты возникает ошибка «SMTP-серверу требуется безопасное соединение». как уже упоминалось, это отлично работает, если детали smtp не smtp.office365.com

Это код в функции для отправки почты

Dim msg1 As MailMessage = New MailMessage()
Dim mailserver As SmtpClient = New SmtpClient()
Dim attachFile As Attachment
Try
    msg1.From = New MailAddress("*@*.onmicrosoft.com", "Company")
    msg1.To.Add(New MailAddress("To@mail.com", "UserName"))
    msg1.Subject = "Payslip"
    For Each sFile As String In sFileNames
        attachFile = New Attachment(sFile)
        msg1.Attachments.Add(attachFile)
    Next
    msg1.Body = sMsgBody
    msg1.Sender = msg1.From
    mailserver.DeliveryMethod = SmtpDeliveryMethod.Network
    mailserver.Host = "smtp.office365.com"
    mailserver.UseDefaultCredentials = False
    mailserver.Credentials = New System.Net.NetworkCredential("*@*.onmicrosoft.com", "Password")
    mailserver.Port = 587
    mailserver.EnableSsl = True
    mailserver.Send(msg1)
    bMailSend = True
Catch ex As Exception
    bMailSend = False
    sErrorMsg = ex.Message
Finally
    msg1.Attachments.Dispose()
    msg1 = Nothing
    mailserver = Nothing
    If Not IsNothing(attachFile) Then attachFile.Dispose() : attachFile = Nothing
End Try
...