Solved

Powershell script to parse through sender list and send out message

Posted on 2010-08-26
2
907 Views
Last Modified: 2012-06-27
Hello everyone,

I need help with a powershell script that will do the following:

1-parse through a csv file and create a list of emails and first name (and maybe place them in two separate arrays)
2- get content of a text file and use as a body of an email message
3- send out emails (at once or one-by-one) to the email addresses and first names parsed from step one.

not really sure how could this be accomplished, but I was thinking something among the following lines (total pseudo code :))

$PathToFiles= c:\testpath
$E-mailSubject= "My Dissertation"

(Now, here's where is gets interesting and confusing)

$ListofFirstNames=  import-csv $PathToFiles\ListofNamesAndEmailAddress.csv |select First_Name
$firstname= for each-item in $ListofFirstNames

$ListofEmails= import-csv $PathToFiles\ListofNamesAndEmailAddress.csv |select E-mail
$mailto= for each-item in $ListofEmails

the emailbody.doc will look something like this:
"Dear $firstname,
bla bla bla bla
Thank you"

$E-MailBody= Get-Content "$PathToFiles\e-mailbody.doc" (replacing each $firstname with a name from the first name arrary)
$sendto= $mailto (one email address per message)
$send-message

I know this isn't very clear, so please feel free to ask any questions you may have.  I'm using powershell 2.0 ctp3

thanks in advance
0
Comment
Question by:bloodywicked
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 2
2 Comments
 
LVL 32

Accepted Solution

by:
endital1097 earned 500 total points
ID: 33535478
i think we just need to work on the body
the columns i'm using in the csv are email and firstname
$SmtpClient = New-Object system.Net.Mail.SmtpClient
$MailMessage = New-Object system.Net.Mail.MailMessage
$SmtpClient.Host = "exch.contoso.com"
$MailMessage.From = "Somone <sender@contoso.com>"
$MailMessage.Subject = "Powershell message"
$MailMessage.IsBodyHtml = $True

$body = @()
import-csv c:\messages.csv | foreach-object { $MailMessage.To.Add($_.email);
$body = "Dear $_.FirstName
$body += Get-Content "C:\yourtext.txt"
$MailMessage.Body = $body
$smtpClient.Send($MailMessage)
}

Open in new window

0
 
LVL 32

Expert Comment

by:endital1097
ID: 33535618
one change where ` is the character next to the 1, not the apostrophe
$body = "Dear " + $_.FirstName + "`n"

Open in new window

0

Featured Post

Best Practices: Disaster Recovery Testing

Besides backup, any IT division should have a disaster recovery plan. You will find a few tips below relating to the development of such a plan and to what issues one should pay special attention in the course of backup planning.

Question has a verified solution.

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

MS Outlook is a world-class email client application that is mainly used for e-communication globally.  In this article, we will discuss the basic idea about MS Outlook, its advanced features, and types of MS Outlook File formats.
A quick Powershell script I wrote to find old program installations and check versions of a specific file across the network.
The viewer will learn how to dynamically set the form action using jQuery.
Video by: Mark
This lesson goes over how to construct ordered and unordered lists and how to create hyperlinks.

752 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