Decrease Font Size
Increase Font Size

ASP.NET Sending email through Hotmail

ASP .NET How to Send Email asynchronously | ASP .NET sends email using account

I was browsing the ASP.NET forum the other day and saw a topic "Problem sending email" using hotmail account Asynchronously. Personally, I haven't tried that before and I did get it to work. Below is the code in and CSharp version. Make sure to set Async="true" in the page directive because we are sending the email Asynchronously.

Here is the entry in Web.config

      <smtp from=""> 
        <network host="" defaultCredentials="false"  port="25" userName ="" password="myHotmailPassword" />

This is the ASPX page

<%@ Page Language="VB" Async="true" AutoEventWireup="false" CodeFile="TestHotmail.aspx.vb" Inherits="TestHotmail" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "">

<html xmlns="">
<head runat="server">
    <form id="form1" runat="server">
        <asp:Button ID="Button1" runat="server" Text="Button" />
    <asp:Label ID="lblMessage" runat="server" Text="Label"></asp:Label>


Imports System.Net.Mail
Partial Class TestHotmail
    Inherits System.Web.UI.Page

    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
        AddHandler Button1.Click, AddressOf Button1_Click
    End Sub

    Protected Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs)
        Dim mailMessage As New System.Net.Mail.MailMessage

        mailMessage.To.Add(New MailAddress(""))
        mailMessage.From = New MailAddress("")

        mailMessage.Subject = "my test subject"
        mailMessage.Body = "my test body"
        mailMessage.IsBodyHtml = True

        Dim smtpClient As New SmtpClient()
        smtpClient.EnableSsl = True

        Dim userState As Object = mailMessage

        AddHandler smtpClient.SendCompleted, AddressOf smtpClient_OnCompleted
        smtpClient.SendAsync(mailMessage, userState)

    End Sub

    Public Sub smtpClient_OnCompleted(ByVal sender As Object, ByVal e As System.ComponentModel.AsyncCompletedEventArgs)
        Dim mailMessage As MailMessage

        mailMessage = CType(e.UserState, MailMessage)

        If (e.Cancelled) Then
            lblMessage.Text = "Sending of email message was cancelled. Address=" + mailMessage.To(0).Address
        End If
        If Not (e.Error Is Nothing) Then
            lblMessage.Text = "Error occured, info :" + e.Error.Message
            lblMessage.Text = "Mail sent successfully"
        End If
    End Sub

End Class


If you are using CSharp, this is the code behind

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Net.Mail;

public partial class TestHotmailCsharp : System.Web.UI.Page
    protected void Page_Load(object sender, EventArgs e)
        Button1.Click +=new EventHandler(Button1_Click);

    protected void Button1_Click(object sender, EventArgs e)
        System.Net.Mail.MailMessage mailMessage = new System.Net.Mail.MailMessage();

        mailMessage.To.Add(new MailAddress(""));
        mailMessage.From = new MailAddress("");

        mailMessage.Subject = "my test subject";
        mailMessage.Body = "my test body";
        mailMessage.IsBodyHtml = true;

        SmtpClient smtpClient = new SmtpClient();
        smtpClient.EnableSsl = true;

        object userState = mailMessage;

        smtpClient.SendCompleted += new SendCompletedEventHandler(smtpClient_SendCompleted);
        smtpClient.SendAsync(mailMessage, userState);

    void smtpClient_SendCompleted(object sender, System.ComponentModel.AsyncCompletedEventArgs e)
        MailMessage mailMessage = default(MailMessage);

        mailMessage = (MailMessage)e.UserState;

        if ((e.Cancelled))
            lblMessage.Text = "Sending of email message was cancelled. Address=" + mailMessage.To[0].Address;
        if ((e.Error != null))
            lblMessage.Text = "Error occured, info :" + e.Error.Message;
            lblMessage.Text = "Mail sent successfully";


Send Email Asynchronously with ASP.NET
Incoming and Outgoing Mail Server Settings for Hotmail, Yahoo! Mail, GMail, MSN, AOL and more