How to Use an Excel Macro to Email Without Using Outlook

Techwalla may earn compensation through affiliate links in this story.
It's possible to send email from Excel without calling up Outlook.

There are lots of reasons to send mail from an Excel macro. For example, when a sales sum reaches a certain value, a manager may want to know right away. While there are a few ways to send email from an Excel macro, the most commonly used method is to harness Outlook. That is a problem if you don't have Outlook installed on the computer you're using to open the spreadsheet. In that case, you can use CDO, which stands for Collaboration Data Object, instead.


Step 1

Press "Alt" and "F11" at the same time from the Excel spreadsheet to open the built-in Visual Basic editor.

Video of the Day

Step 2

Copy and paste the following code into the blank code window: Sub CDO_Mail_Small_Text() Dim iMsg As Object Dim iConf As Object Dim strbody As String ' Dim Flds As Variant

Set iMsg = CreateObject("CDO.Message")
Set iConf = CreateObject("CDO.Configuration")

.Item("") = 2 ' .Item("") _ ' = "Fill in your SMTP server here" ' .Item("") = 25 ' .Update ' End With


strbody = "Hi there" & vbNewLine & vbNewLine & _
          "This is line 1" & vbNewLine & _
          "This is line 2" & vbNewLine & _
          "This is line 3" & vbNewLine & _
          "This is line 4"

With iMsg
    Set .Configuration = iConf
    .To = ""
    .CC = ""
    .BCC = ""
    .From = """Person"" < >"
    .Subject = "Subject Line"
    .TextBody = strbody
End With

End Sub

Step 3

Replace "Fill in your SMTP server here" with the address of the SMTP server you wish to use.

Step 4

Press "F5" to run the macro and send your email message.


If you don’t have your own, Google provides an SMTP server ( that you can use for free.