I would like to automate the process of creating the first part of an email, namely "Dear sender's name" in Outlook. I believe it is possible as the name can be derived from the name field of the person who has sent the email (i.e. name field [ email field ] which appears at the top of the email) . How do I go about accomplishing this?
This is a Mail Merge feature and the Microsoft Outlook blog runs through how to set that up
The basic steps to creating a mail merged e-mail from Outlook are:
- Select your contacts in Outlook
- Select to send an e-mail in the Mail Merge dialog and choose your subject
- Compose your e-mail in Word – inserting fields where appropriate
- Preview and Send
Read about the details on the blog article linked above.
Sub InsertNameInReply() Dim Msg As Outlook.MailItem Dim MsgReply As Outlook.MailItem Dim strGreetName As String Dim lGreetType As Long ' set reference to open/selected mail item On Error Resume Next Select Case TypeName(Application.ActiveWindow) Case "Explorer" Set Msg = ActiveExplorer.Selection.Item(1) Case "Inspector" Set Msg = ActiveInspector.CurrentItem Case Else End Select On Error GoTo 0 If Msg Is Nothing Then GoTo ExitProc strGreetName = Mid$(Msg.SenderName, 2 + InStr(1, Msg.SenderName, ", ", Len(Msg.SenderName)) - 1) Set MsgReply = Msg.Reply With MsgReply .Subject = "RE:" & Msg.Subject .HTMLBody = "<span style=""font-family : verdana;font-size : 10pt""><p>Hello " & strGreetName & ",</p></span>" & .HTMLBody .Display End With ExitProc: Set Msg = Nothing Set MsgReply = Nothing End Sub