Этот код не работает для меня, пока несколько дней назад, когда мы перешли провайдера (или, возможно, что-то изменилось по совпадению на стороне сервера). Если я укажу порт 587, я получаю транспортную ошибку и не нашел решение для VBA. Пожалуйста, дайте мне знать, если это работает для вас, и если вы нашли способ использовать 587. (порт 25 не работает для меня тоже, такой же ошибки.)
Public Function SMTPSend(vSendTo, vsubject As Variant, vmessage As Variant)
'This works
Set emailObj = CreateObject("CDO.Message")
emailObj.From = "[email protected]"
emailObj.To = vSendTo
emailObj.Subject = vsubject
emailObj.TextBody = vmessage
'emailObj.AddAttachment "c:\windows\win.ini"
Set emailConfig = emailObj.configuration
emailConfig.Fields("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
emailConfig.Fields("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = 1
emailConfig.Fields("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "smtp.office365.com"
'Must exclude port if specifying SSL
'emailConfig.Fields("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 587
emailConfig.Fields("http://schemas.microsoft.com/cdo/configuration/smtpusessl") = True
emailConfig.Fields("http://schemas.microsoft.com/cdo/configuration/sendusername") = "[email protected]"
emailConfig.Fields("http://schemas.microsoft.com/cdo/configuration/sendpassword") = "mypassword"
emailConfig.Fields.Update
emailObj.Send
If Err.Number = 0 Then SMTPSend = True Else SMTPSend = False
End Function
Когда я устанавливаю порт не работает. Когда я покидаю поле smtpserverport, я предполагаю, что по умолчанию он соответствует порту 25. Я нашел наши новые блоки ISP 25. Оглядываясь, кажется, что CDO или VBA не правильно передают smtpserverport. Если кто знает тайну, есть много сообщений, подобных этой, которая может использовать эту помощь. – pghcpa
Библиотека .NET делает ** не ** помощь с VB6 или классическим ASP-кодом. – eidylon