The problem: you have several POP3 accounts and want to combine them into one mailbox and have the email accessible on your smartphone and other computers.
The solution: Use Gmail to collect the email from your accounts.
This works great, as long as you use the Gmail web interface as you can configure Gmail to reply from the address the message was sent to. If you want to download the mail into Outlook, Outlook is going to reply using the gmail address, because it replies using the account that downloaded the message.
Fortunately, Gmail lets you send mail using the connected addresses, even when you use Outlook to send the email. You need to have Gmail configured to send using the account in Settings, Accounts and Import.
Note: These steps may work with any account that lets you collect mail from other server and send mail using any address. It wonât work with Outlook.com at this time, unless the additional addresses are in Microsoft's domains (outlook.com, Hotmail, MSN, etc).
If you want to set a specific account as the default address, enter it in the Account Settings dialog. Replace the name and email address at the top of the dialog with the address you want to have set as default. If you use one of your addresses here, you won't need to add the address to the macros.
To send using one of the other accounts Gmail is collecting mail from, you can select the From > Other Email Address command and type the address in the Send From Other Email Address dialog.
The message header will contain the gmail address, but it wonât be exposed in Outlook.
Return-Path:
Received: from MyHP (my-ip)
by mx.google.com with ESMTPSA id v37sm4082638qge.29.2014.10.24.06.31.34
for
(version=TLSv1 cipher=ECDHE-RSA-AES128-SHA bits=128/128);
Fri, 24 Oct 2014 06:31:34 -0700 (PDT)
From:
To:
Set up the Gmail Account to Send and Receive Your Other EMail Accounts
In Gmail, go to Settings, then Accounts and Import and Add your accounts to the Send mail from section.
In Outlook, use auto account setup to add the Gmail account to your profile. If your POP3 accounts are in your profile (and also configured as an account you can send from in Gmail), you can remove them from Outlook's Email tab in File, Account Settings.
To send a message using one of the POP3 accounts in Gmail:
- Open a new message.
- Click From and select Other Email Address.
Note: If you previously used the address, itâs listed in the section above Other Email Address. Select it and return to the message form.
- Type your POP3 address in the Send From Other Address dialog then click OK to return to the message form.
- The selected address is listed next to the From field.
As easy as that is to do, you can use a macro to automate the process. You can also use a macro to open a new message using a specific address and to check the address on outgoing messages.
This will not work with Outlook 2013's "inline replies". Replies and Forwards will be opened in a new Window.
Reply from the address a message was sent to
The following code checks for your specified email addresses in the To/CC field. If it finds one of your addresses, it inserts it in the From field of the reply, the same as if you had used From > Other Email Address field and typed the address in the Send From Other Email Address dialog.
If one of your addresses is not on the recipient list, the reply will be from the default address.
This macro works with Gmail accounts. It does not work with Outlook.com accounts at this time.
This set of macros goes into the ThisOutlookSession module. It runs when Outlook starts and watches for the Reply, ReplyAll, and Forward buttons to be clicked. you can kick start it during testing by clicking in the Startup macro then clicking Run.
Option Explicit Private WithEvents oExpl As Explorer Private WithEvents oItem As MailItem Dim oResponse As MailItem Dim myAddy As String Private bDiscardEvents As Boolean Private Sub Application_Startup() Set oExpl = Application.ActiveExplorer bDiscardEvents = False End Sub Private Sub oExpl_SelectionChange() On Error Resume Next Set oItem = oExpl.Selection.Item(1) End Sub ' Reply Private Sub oItem_Reply(ByVal Response As Object, Cancel As Boolean) Cancel = True bDiscardEvents = True Set oResponse = oItem.Reply 'run the afterReply macro afterReply 'clear myAddy variable myAddy = "" End Sub Private Sub oItem_Forward(ByVal Response As Object, Cancel As Boolean) Cancel = True bDiscardEvents = True Set oResponse = oItem.Forward 'run the afterReply macro afterReply 'clear myAddy variable myAddy = "" End Sub Private Sub oItem_ReplyAll(ByVal Response As Object, Cancel As Boolean) Cancel = True bDiscardEvents = True Set oResponse = oItem.ReplyAll 'run the afterReply macro afterReply 'remove your address from reply all RemoveRecipients oResponse 'clear myAddy variable myAddy = "" End Sub Private Sub afterReply() Dim Recipient As Outlook.Recipient Dim strRecip As String ' get a list of recipients For Each Recipient In oItem.Recipients strRecip = Recipient.Address & ";" & strRecip Next Recipient 'check the list for your addresses 'add more elseif lines as needed If InStr(strRecip, "bcm@outlookbcm.com") > 0 Then myAddy = "bcm@outlookbcm.com" ElseIf InStr(strRecip, "granny@domain.com") > 0 Then myAddy = "granny@mobilegranny.com" ElseIf InStr(strRecip, "alias@msn.com") > 0 Then myAddy = "alias@msn.com" End If ' set the address as the from address oResponse.SentOnBehalfOfName = myAddy oResponse.Display End Sub ' remove your address from reply all Private Sub RemoveRecipients(Item As Outlook.MailItem) Dim RemoveThis As VBA.Collection Dim Recipients As Outlook.Recipients Dim R As Outlook.Recipient Dim i&, y& Set RemoveThis = New VBA.Collection RemoveThis.Add myAddy Set Recipients = Item.Recipients For i = Recipients.Count To 1 Step -1 Set R = Recipients.Item(i) For y = 1 To RemoveThis.Count If LCase$(R.Address) = LCase$(RemoveThis(y)) Then Recipients.Remove i Exit For End If Next Next End Sub ' check the from on new messages before sending Private Sub Application_ItemSend(ByVal Item As Object, Cancel As Boolean) Dim prompt As String Dim strAddress As String On Error Resume Next If Item.SentOnBehalfOfName <> "" Then strAddress = Item.SentOnBehalfOfName Else strAddress = Item.SendUsingAccount End If If Not Left(LCase(Item.Subject), 3) = "re:" And Not Left(LCase(Item.Subject), 3) = "fw:" Then prompt$ = "You sending this from " & strAddress & ". Are you sure you want to send it?" If MsgBox(prompt$, vbYesNo + vbQuestion + vbMsgBoxSetForeground, "Check Sending Account") = vbNo Then Cancel = True End If End If End Sub
Reply Using the Correct Account Video Tutorial
New Messages using a specific address
To use this code, right click on Project1 and choose Insert > Module. Paste it in the module and update the addresses. If you need more than 3 addresses, duplicate one of the account subs, then change the sub name to something unique (like your email alias or domain name) and replace the email address.
To use, you need to create button on the ribbon for each account sub then click the button when you want to send a new message from a specific account.
Public strFromAddress As String ' Account macros go here Public Sub mobilegranny() strFromAddress = "granny@mobilegranny.com" SendMessageFrom End Sub Public Sub outlookbcm() strFromAddress = "bcm@outlookbcm.com" SendMessageFrom End Sub ' Main macro; do not edit Private Sub SendMessageFrom() Dim oMail As Outlook.MailItem Set oMail = Application.CreateItem(olMailItem) oMail.SentOnBehalfOfName = strFromAddress oMail.Display Set oMail = Nothing End Sub
New Messages Using a Specific Address Video Tutorial
How to use macros
First: You need to have macro security set to low during testing. The macros will not work otherwise.
To check your macro security in Outlook 2010 or 2013, go to File, Options, Trust Center and open Trust Center Settings, and change the Macro Settings. In Outlook 2007 and older, itâs at Tools, Macro Security.
After you test the macro and see that it works, you can either leave macro security set to low or sign the macro.
Some macros need to be in ThisOutlookSession, others go into a module or can be placed in either ThisOutlookSession or a module. The instructions are below.
Open the VBA Editor by pressing Alt+F11 on your keyboard.
If you are told to put the code in a module:
- Right click on Project1 and choose Insert > Module
- Copy and paste the macro into the new module.
If you are told to put the macro code in ThisOutlookSession:
- Expand Project1 and double click on ThisOutlookSession.
- Copy then paste the macro into ThisOutlookSession. (Click within the code, Select All using Ctrl+A, Ctrl+C to copy, Ctrl+V to paste.)
More information as well as screenshots are at How to use the VBA Editor
Hi Diane,
I really need to do something like this in Outlook 365 on the computer. When a user clicks 'Reply', I need the macro to read the subject line.
If it says "MQ ID:" in the subject line, then "SentOnBehalfOf" needs to be changed to a certain email address.
Could you please let me know if this is possible or not possible? I've been working on this problem for weeks now and I don't want to keep working on it if it's impossible.
Thank you,
Mark
You are a goddess! Your Reply from the address a message was sent to is great.
Now I need to create fixed signatures for these aliases that come from my Gmail account. Do you have anything on this issue? Thanks!
I love you. You're amazing. I've been fighting this REPLY TO problem for YEARS. I even called Microsoft asking for a solution and they said there wasn't one. But your script solved everything for me. You're the BEST!
This feature of Gmail is time-saving, but I am worried that when Gmail will have the AI technology to fix the Gmail temporary error 500, so our account won't get blocked by Gmail. However, you can know the reasons why this error occurs so you can prevent from this type of error.
Hi Diane, with the 'New Messages using a specific address' macro, could you suggest some code to have the new message start with a specified mail signature in it?
As I only have one account that aggregates all my others I can't assign a signature to each from address from the GUI, so wondering if this might be possible from VBA.
Many Thanks
Nick
You can use this code to change the signature - if the signature name is the email address you're using, it might be easier. If not, you need to set the signature name when you set the From account.
Set objFSO = CreateObject("Scripting.FileSystemObject")
'Edit the signature file name on the following line as needed
Set objSignatureFile = objFSO.OpenTextFile(strSigFilePath & myAddy & ".htm")
strBuffer = objSignatureFile.ReadAll
objSignatureFile.Close
Sorry Diane, the website feedback form strips the less than, greater than brackets, so it doesn't quite read as intended.
It didn't take much testing to figure the normal email syntax works in this case. So advice to users is when editing the lines
myAddy = "granny@mobilegranny.com"
you are able to use a syntax
myAddy = "Granny Smith <granny@mobilegranny.com>"
but use the less than, greater than type brackets that email programs understand.
Yeah, that is a problem with wordpress. :( For future reference, if you type out the HTML code for it, it will work < ; > ; without the spaces.
I simply have to shout - THANK YOU. This makes me look so much more professional without half my work emails coming from my private address because I forgot to change the from field... For information I am aggregating my accounts through Fastmail.
One question:
From my default address emails appear from: Name Surname
But when using this Macro the email just comes from the email address which makes a subtle difference for recipients when sorting etc. Is it possible to have the Name format?
Answer:
https://www.slipstick.com/outlook/using-gmail-master-account-reply-using-correct-account/#comment-198846
I simply have to shout - THANK YOU. This makes me look so much more professional without half my work emails coming from my private address because I forgot to change the from field... For information I am aggregating my accounts through Fastmail.