We help IT Professionals succeed at work.

Check out our new AWS podcast with Certified Expert, Phil Phillips! Listen to "How to Execute a Seamless AWS Migration" on EE or on your favorite podcast platform. Listen Now


Outlook XP - HTML format

genders asked
Medium Priority
Last Modified: 2010-04-08
In Outlook XP, when we reply to a plain text email, our reply is also formatted in plain text by default.  When we reply we want our html stationery, logo and digital signature to display automatically.  We understand that some recipients will automatically strip our email back to plain text, but we still want to send it in html.  At the moment we have to manually edit each incoming text message, and change the format to html, so that our normal (html) reply will work.  Is there a way to ensure that our replies to text messages are automatically converted to HTML format?
Watch Question

Top Expert 2006

Not sure about XP, but in 2000, you can select (in Tools/Options/Mail Format)

Always use word to edit messages

how does that work for u
Top Expert 2006

The other way, works only for individual messages is to click on Format and select HTML, this will allow you to reply in HTML

By default Outlook replies in the original format since it is known that the recipient can read that format.  You will have to change each message as you reply to it.

If you need to read that from another source look at http://email.calpoly.edu/documentation/outlook_tips.html
Top Expert 2004

While it is true that OL doesn't give you an easy way to do this, it is quite straightforward.

If you have OL 2002 or later, you can create some VBA code and have it take the place of the reply button.
Best way is probably to have your code create a new message (hence inheriting your stationary, HTML format, signature etc), and copy in the info needed to make it a reply (ie. the addressee, subject line, suitably modified, and possibly the old text...) - that will be less work and less fragile that starting with a reply and trying to apply everything.

Want some code to get you going?


Thanks everyone - sorry for the delay, my ISP died for a few hours!
rosesolutions1, I would appreciate some code, please.  I have done a fair bit of VBA coding in Word, Excel & Access, but have never done it in Outlook, and don't even know how to start.
Top Expert 2004
Unlock this solution with a free trial preview.
(No credit card required)
Get Preview
Top Expert 2004

Ok - so thats the bulk of the business logic. Now some wrapping so you can call it either from the Outlook main app, or from inside a mail item [just like the built in replyall function], and gancefully deal with most of the wierd things users might accidentally do...

Sub ReplyAllOverride()
'this is the reply all scenario - can also simplify to handle simple reply, and I suppose forward

'Test if an inspector is active (ie the mail item is open)
Set myOlInsp = ActiveInspector
If TypeName(myOlInsp) = "Nothing" Then 'there is no inspector
'if there is an inspector, continue... otherwise, open one or cancel proc
    Set myOlExp = ActiveExplorer
    Set myOlSel = myOlExp.Selection
    If myOlSel.Count = 1 Then 'could be zero or multiples...
        Set myitem = myOlSel.Item(1)
        Exit Sub 'could expand to handle multiples one day...
    End If
End If
'if the item wasnt open already, it is now...
Set myitem = ActiveInspector.CurrentItem 'auto fails if called straight from explorer

If TypeName(myitem) <> "MailItem" Then Exit Sub 'we'll only handle mailitems

If myitem.BodyFormat = olFormatHTML Then 'already html - let outlook defaults do their thing
    Set myreply = myitem.reply
    myitem.Close olDiscard
    myreply.Display 'done
    'Get information about the message you are replying to
    strTo = myitem.To
    strCC = myitem.CC
    strFrom = myitem.SenderEmailAddress
    strSubject = myitem.Subject
    strBody = myitem.HTMLBody 'although it is plain text, this will keep the formatting
    myitem.Close olDiscard
    'Populate a new reply
    Set myitem = CreateItem(olMailItem) 'should create a new of whatever your default is
    myitem.To = strFrom & "; " & strTo 'you might want to get fancier here to omit yourself...
    myitem.CC = strCC
    If Left(strSubject, 2) = "Re" Then
        myitem.Subject = strSubject
        myitem.Subject = "Re: " & strSubject
    End If
    myitem.HTMLBody = myitem.HTMLBody & vbCrLf & strBody 'append, so signature block etc are included - use htmlbody to preserve html formatting from signature etc
End If

End Sub


Thanks rosesolutions1.
Unlock the solution to this question.
Thanks for using Experts Exchange.

Please provide your email to receive a free trial preview!

*This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.


Please enter a first name

Please enter a last name

8+ characters (letters, numbers, and a symbol)

By clicking, you agree to the Terms of Use and Privacy Policy.