Go Premium for a chance to win a PS4. Enter to Win

x
?
Solved

Powershell script to parse through sender list and send out message

Posted on 2010-08-26
2
Medium Priority
?
916 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
  • 2
2 Comments
 
LVL 32

Accepted Solution

by:
endital1097 earned 2000 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

VIDEO: THE CONCERTO CLOUD FOR HEALTHCARE

Modern healthcare requires a modern cloud. View this brief video to understand how the Concerto Cloud for Healthcare can help your organization.

Question has a verified solution.

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

On September 18, Experts Exchange launched the first installment of the Help Bell, a new feature for Premium Members, Team Accounts, and Qualified Experts. The Help Bell will serve as an additional tool to help teams increase question visibility.
There can be many situations demanding the conversion of Outlook OST files to PST format and as such, there is no shortage of automated tools to perform this conversion. However, what makes Stellar OST to PST converter stand above the rest? Let us e…
This video shows how to quickly and easily deploy an email signature for all users in Office 365 and prevent it from being added to replies and forwards. (the resulting signature is applied on the server level in Exchange Online) The email signat…
Whether it be Exchange Server Crash Issues, Dirty Shutdown Errors or Failed to mount error, Stellar Phoenix Mailbox Exchange Recovery has always got your back. With the help of its easy to understand user interface and 3 simple steps recovery proced…
Suggested Courses
Course of the Month9 days, 2 hours left to enroll

876 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