?
Solved

Powershell script to parse through sender list and send out message

Posted on 2010-08-26
2
Medium Priority
?
911 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 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

Are your AD admin tools letting you down?

Managing Active Directory can get complicated.  Often, the native tools for managing AD are just not up to the task.  The largest Active Directory installations in the world have relied on one tool to manage their day-to-day administration tasks: Hyena. Start your trial today.

Question has a verified solution.

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

After hours on line I found a solution which pointed to the inherited Active Directory permissions . You have to give/allow permissions to the "Exchange trusted subsystem" for the user in the Active Directory...
The core idea of this article is to make you acquainted with the best way in which you can export Exchange mailbox to PST format.
The viewer will learn how to dynamically set the form action using jQuery.
This video demonstrates how to sync Microsoft Exchange Public Folders with smartphones using CodeTwo Exchange Sync and Exchange ActiveSync. To learn more about CodeTwo Exchange Sync and download the free trial, go to: http://www.codetwo.com/excha…
Suggested Courses

719 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