Solved

Embed file contents to body of CDO message

Posted on 2007-12-03
2
2,451 Views
Last Modified: 2010-08-05
I am using vbscript to send messages from Windows Server 2003.  All is well except that I cannot find a way to embed the contents of a text file into the message body.  It will work as an attachment, but that is not what Im looking for.  Heres the code:


Set objArgs = WScript.Arguments
 

Set objSendMail = CreateObject("CDO.Message")

Set network = CreateObject("wscript.network")

      

objSendMail.From = "Operating.System@mydomain.com"

objSendMail.To = objArgs(0)

objSendMail.Subject = network.computername & " : " & objArgs(1)

objSendMail.TextBody = objArgs(2)

objSendMail.AddAttachment objArgs(3) 'heres where I want to add the filepath

objSendMail.Send

         

Set objSendMail = Nothing			    

Set network = Nothing

Open in new window

0
Comment
Question by:BillPowell
2 Comments
 
LVL 12

Accepted Solution

by:
chandru_sol earned 500 total points
ID: 20400360
Try this.......

'These constants are defined to make the code more readable
Const ForReading = 1, ForWriting = 2, ForAppending = 8
Dim fso, f
Set fso = CreateObject("Scripting.FileSystemObject")
'Open the file for reading
Set f = fso.OpenTextFile("c:\temp\MyEmail.txt", ForReading)
'The ReadAll method reads the entire file into the variable BodyText
BodyText = f.ReadAll
'Close the file
f.Close
Set f = Nothing
Set fso = Nothing

this link will give you lots about CDO

http://www.paulsadowski.com/WSH/cdo.htm

regards
Chandru

Re
0
 

Expert Comment

by:PerceptiveSoftware
ID: 21693213
Chandru,

I have tried using that code before, and it will not include the contents of the file in my email body.  I've tried both HTML and Text, and neither work.  Any gotchas I should look for?  I've attached the part of my code that creates and sends the email.  I do get the emails, they're just blank.

Thanks
'These constants are defined to make the code more readable

Const ForReading = 1, ForWriting = 2, ForAppending = 8

Dim fso, f, BodyText

Set fso = CreateObject("Scripting.FileSystemObject")

'Open the file for reading

Set f = fso.OpenHTMLFile("c:\PasswordExpirationNotifier\PWD.html", ForReading)

'The ReadAll method reads the entire file into the variable BodyText

Set BodyText = f.ReadAll

'Close the file

f.Close

Set f = Nothing

Set fso = Nothing
 

Sub SendEmailMessage(strDestEmail, strNoOfDays)

  Set objMessage = CreateObject("CDO.Message")

  objMessage.Subject = "Password Expires in " & strNoOfDays & " days"

  objMessage.Sender = "administrator@mydomain.com"

  objMessage.To = "me@mydomain.com"

  objMessage.HTMLBody = BodyText

  objMessage.Send

End Sub

Open in new window

0

Featured Post

DevOps Toolchain Recommendations

Read this Gartner Research Note and discover how your IT organization can automate and optimize DevOps processes using a toolchain architecture.

Question has a verified solution.

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

Suggested Solutions

It is becoming increasingly popular to have a front-page slider on a web site. Nearly every TV website,  magazine or online news has one on their site, and even some e-commerce sites have one. Today you can use sliders with Joomla, WordPress or …
Active Directory replication delay is the cause to many problems.  Here is a super easy script to force Active Directory replication to all sites with by using an elevated PowerShell command prompt, and a tool to verify your changes.
The viewer will learn how to create a basic form using some HTML5 and PHP for later processing. Set up your basic HTML file. Open your form tag and set the method and action attributes.: (CODE) Set up your first few inputs one for the name and …
In this seventh video of the Xpdf series, we discuss and demonstrate the PDFfonts utility, which lists all the fonts used in a PDF file. It does this via a command line interface, making it suitable for use in programs, scripts, batch files — any pl…

914 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

Need Help in Real-Time?

Connect with top rated Experts

16 Experts available now in Live!

Get 1:1 Help Now