With Google Docs, you can send personalized email in rich-text HTML format to a large group of people using Mail Merge. This snippet of Google Apps Script is responsible for sending the messages.
function labnolSendEmail() { var mySheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet(); var emailSubject = mySheet.getRange("E5").getValue(); var emailSalutation = mySheet.getRange("E7").getValue(); var emailBody = mySheet.getRange("E9").getValue(); var emailYourName = mySheet.getRange("E11").getValue(); var emailYourAddr = Session.getUser().getEmail(); var replyToAddr = mySheet.getRange("E13").getValue(); var file = mySheet.getRange("E15").getValue(); var attachmentID = file?DocsList.getFileById(file):""; var emailBCC = mySheet.getRange("E17").getValue(); var myContact = mySheet.getDataRange().getValues(); for (i=1; i < myContact.length; i++) { var person = myContact[i]; if (person[0] != "" && person[1] != "" && person[2] != "OK") { var emailMsg = emailSalutation + " " + person[0] + ", <br />" + emailBody; var advancedArgs = {htmlBody:emailMsg, name:emailYourName, replyTo:replyToAddr}; if (file) advancedArgs["attachments"] = attachmentID; if (emailBCC == "YES") advancedArgs["bcc"] = emailYourAddr; GmailApp.sendEmail(person[1], emailSubject, emailMsg, advancedArgs); mySheet.getRange(i+1,3).setValue("OK"); } } }