For what you need I would use an Asyncronous Delegate. You can send the email while the page continues processing (or any process for that matter) and should not hang while sending the email. I have used the following template several times. Take a look at the basic code below:
'Used for calling e-mail sub asyncronously
Private Delegate Sub SendEmailAsync(ByVal Subject As String, ByVal MessageBody As String, ByVal EmailContact As String, ByVal EmailSender As String)
Protected Overloads Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
Dim AsyncResult As IAsyncResult
'Launch sending an email on its own thread which will allow the
'page to load without waiting
'Create an instance of the delegate with an address of the SendEmail() Sub
Dim Invoker As New SendEmailAsync(AddressOf SendEmail)
'Invoke the delegate asynchronously.
AsyncResult = Invoker.BeginInvoke("Hello", "How Are You?", "You@Something.com", "Me@Something.com", Nothing, Nothing)
End Sub
Private Sub SendEmail(ByVal Subject As String, ByVal MessageBody As String, ByVal EmailContact As String, ByVal EmailSender As String)
'Code to send email
End Sub
If you need more assistance, take a look to the following:
Asynchronous Programming Design Patterns:
http://msdn.microsoft.com/en-us/library/ms228969.aspx
Hope this helps! 