web-dev-qa-db-ja.com

VB6でCDO / SMTP / TLSを使用して電子メールsmtp.office365.comメールサーバーを送信する

VB6アプリケーションでOffice365SMTPサーバーを設定する方法を見つけるために日を探しています。私のコードは、ポート465やその他のメールサーバーで正しく機能しています。ただし、ポート587およびsmtp.office365.comでは機能しません。

VB6で587経由でTLSを使用できる方法はありますか?

ありがとう

4
Al007

このコードは、数日前にISPを切り替えたとき(またはサーバー側で偶然に何かが変更されたとき)まで機能していました。ポート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
0
pghcpa