Using VBscript to send emails to Office 365 account

For some reason, we couldn't directly figure out how to use our normal VBscript that sends emails to send emails using an ExchangeOnline/Office 365 account. We tried all kinds of steps and it didn't work. So we eventually decided to just configure an SMTP service on our server using IIS 6 and then having our VBScript talk to the IIS SMTP service, which then sends the emails via Office 365.

Here are the steps:

1) Configure your IIS SMTP service using the steps in this Microsoft kbase article:

https://support.office.com/en-us/article/How-to-configure-IIS-for-relay-with-Office-365-eb57abd2-3859-4e79-b721-2ed1f0f579c9

2) Configure VBScript code as follows:

Dim strBody

strBody = "Test email "

Dim ObjSendMail

Set ObjSendMail = CreateObject("CDO.Message")

'This section provides the configuration information for the remote SMTP server.

ObjSendMail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2

ObjSendMail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "127.0.0.1"

ObjSendMail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 587

ObjSendMail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/smtpusessl") = 0

ObjSendMail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/smtpconnectiontimeout") = 60

ObjSendMail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = 1

NOTE: these next two lines are the windows user id and password that has security permissions to connect to the

IIS server:

ObjSendMail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/sendusername") = "userid"

ObjSendMail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/sendpassword") = "password"

ObjSendMail.Configuration.Fields.Update

ObjSendMail.To = "someone@email.com"

ObjSendMail.Subject = "test email "

ObjSendMail.From = "someone@yourorganization.com"

ObjSendMail.TextBody = strBody

ObjSendMail.Send

Set ObjSendMail = Nothing

3) You have to go into the Office 365 admin portal and create a connector for the IP address of the IIS SMTP server.

Go to the Exchange Online admin center, then "mail flow" then "connectors". You have to add a rule that allows a connection from your IIS SMTP server.