Solved

Automate Email through vbscript

Posted on 2013-01-10
13
690 Views
Last Modified: 2013-02-04
Hello,

I have the below email script:

Set fso=CreateObject("Scripting.FileSystemObject")

strSMTP="smtpserver.com"
strSubject="hello"
strRecipient=someone@aol.com,someone@smtpserver.com"
strSender="someone@smtpserver.com"
strBody="Hello"
strAttach="C:\test\testfile.pdf"

If fso.FileExists(strAttach) then
Set iMsg = CreateObject("CDO.Message")
Set iConf = CreateObject("CDO.Configuration")
iConf.Load -1    ' CDO Source Defaults
Set Flds = iConf.Fields
With Flds
    .Item("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
    .Item("http://schemas.microsoft.com/cdo/configuration/smtpserver") = strSMTP
    .Item("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25
    .Update
End With
With iMsg
    Set .Configuration = iConf
    .To = strRecipient
    .CC = ""
    .BCC = ""
    .From = "<" & strSender & ">"
    .Subject = strSubject
    .TextBody = strBody
    .AddAttachment strAttach
    .Send
End With
Set iMsg = Nothing
Set iConf = Nothing
Else
MsgBox "The specified attachment does not exist"
End if


When I send to an AOL or yahoo account I receive the following error:
"The server rejected one or more recipient address.  The server response was: 553 sorry, that domain isn't in my list of allowed rcpthosts(#5.7.1)"

If I send this from my outlook using the same sender and smtp server it sends fine.  

Any help would be appreciated.

Thank you.
0
Comment
Question by:cbones
13 Comments
 
LVL 27

Expert Comment

by:MacroShadow
ID: 38765052
First of all port 25 isn't the correct port for AOL, you should use 587 instead.

Besides that the problem is most probably caused by not setting the type of authentication to use. Add the following line after With Flds:
.Item("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = 1
0
 
LVL 54

Expert Comment

by:Bill Prew
ID: 38765522
There's a great post on this with some very useful code that handles several common email platforms including AOL here:

http://relevantcodes.com/cdo-send-email-from-yahoo-hotmail-live-aol-or-gmail/

If you don't want to use the code there, at least search the code for "aol" and note the differences, like the use of port 587.

~bp
0
 

Author Comment

by:cbones
ID: 38766782
MacroShadow,

I made those changes but still cannot send to a yahoo or aol user.

Any ideas?
0
NFR key for Veeam Backup for Microsoft Office 365

Veeam is happy to provide a free NFR license (for 1 year, up to 10 users). This license allows for the non‑production use of Veeam Backup for Microsoft Office 365 in your home lab without any feature limitations.

 
LVL 27

Expert Comment

by:MacroShadow
ID: 38766821
Can you send to a gmail or hotmail account?
0
 
LVL 27

Expert Comment

by:MacroShadow
ID: 38766830
btw, you didn't define the sender's smtp account credentials (i.e. username and password.
0
 

Author Comment

by:cbones
ID: 38766855
strSMTP="smtpserver.com" --> my smtp server i just renamed it.
strSubject="hello"
strRecipient=someone@aol.com,someone@smtpserver.com"
strSender="someone@smtpserver.com" --> my account just renamed it.

I can send internally.  In the same domain, just not out.  
Where would I specify that information in the script?

Thank you
0
 
LVL 27

Accepted Solution

by:
MacroShadow earned 400 total points
ID: 38766884
0
 

Author Comment

by:cbones
ID: 38766998
I added that in.  I receive this message:

The transport failed to connect to the server
Code: 80040213
Source:  CDO.Message.1
0
 
LVL 27

Expert Comment

by:MacroShadow
ID: 38767194
That indicates a network related error. Your application cannot connect to the mail server specified.

If the smtpserver is valid - and from you question it seems that it is - it may be a firewall or proxy settings, blocking you.

Your User Name (the user name parameter) should be: YourUsername@yourDomain.com
0
 
LVL 27

Expert Comment

by:MacroShadow
ID: 38767203
I'll be out 'till sunday.
Good luck!
0
 

Author Comment

by:cbones
ID: 38767358
Thanks MacroShadow.

I added the @mydomain.com to the below line:
.Item("http://schemas.microsoft.com/cdo/configuration/sendusername") = username@mydomain.com

but when I do that it tells me invalid characters

I'll keep searching.
0
 
LVL 69

Assisted Solution

by:Qlemo
Qlemo earned 100 total points
ID: 38794207
Don't forget to enclose strings in double quotes:
.Item("http://schemas.microsoft.com/cdo/configuration/sendusername") = "username@mydomain.com"

Open in new window

0
 

Author Comment

by:cbones
ID: 38852721
I will try the above.

Thank you.
0

Featured Post

Free learning courses: Active Directory Deep Dive

Get a firm grasp on your IT environment when you learn Active Directory best practices with Veeam! Watch all, or choose any amount, of this three-part webinar series to improve your skills. From the basics to virtualization and backup, we got you covered.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

This article lists the top 5 free OST to PST Converter Tools. These tools save a lot of time for users when they want to convert OST to PST after their exchange server is no longer available or some other critical issue with exchange server or impor…
With User Account Control (UAC) enabled in Windows 7, one needs to open an elevated Command Prompt in order to run scripts under administrative privileges. Although the elevated Command Prompt accomplishes the task, the question How to run as script…
Get people started with the process of using Access VBA to control Outlook using automation, Microsoft Access can control other applications. An example is the ability to programmatically talk to Microsoft Outlook. Using automation, an Access applic…
This Experts Exchange video Micro Tutorial shows how to tell Microsoft Office that a word is NOT spelled correctly. Microsoft Office has a built-in, main dictionary that is shared by Office apps, including Excel, Outlook, PowerPoint, and Word. When …

820 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question