aspNetEmail

EmailMessage.BeforeSmtpSend Event

A BeforeSmtpSend event has occurred.

public event BeforeSmtpSendEventHandler BeforeSmtpSend;

Event Data

The event handler receives an argument of type BeforeSmtpSendEventArgs containing data related to this event. The following BeforeSmtpSendEventArgs properties provide information specific to this event.

PropertyDescription
Cancel Cancel sending the text.
SmtpState The current state of the Smtp session.
Socket The underlying socket to the Smtp server.
Text The text about to be sent to the Smtp server.

Example

[C#]
            void SendEmail()
            {
            	EmailMessage.LoadLicenseFile( "c:\\aspnetemail.xml.lic" );
            
            	//load the values from the .config file. see the help for more information on this .ctor
            	EmailMessage m = new EmailMessage( true, false );
            
            	m.Subject="a test email to test the BeforeSmtpServer event";
            	m.Body = "test test";
            	m.To = "dave@aspnetemail.com";
            	m.LogPath = "c:\\email.log";
            	m.LogOverwrite = true;
            	m.Logging = true;
            
            	m.BeforeSmtpSend += new BeforeSmtpSendEventHandler( OnBeforeSmtpServerSend );
            	m.Send();
            	Console.WriteLine( "done...");
            	Console.ReadLine();
            }
            
            private  void OnBeforeSmtpServerSend( object sender, BeforeSmtpSendEventArgs e )
            {
            	Console.WriteLine( e.Text );
            	Console.WriteLine( e.SmtpState );
            
            	//here we could do some checking, and over ride the data sent to the server
            	if( e.SmtpState == SmtpState.MailFrom )
            	{
            		//here we could change the mail from info
            		e.Text = "Mail From:<test@test.com>\r\n";
            	}
            
            	//if we wanted to cancel sending this command we set
            	//e.Cancel = true;
            	//this will not close the socket connection, but simply not send the value of e.Text
            
            	//if we want to write directly to the socket, we have access to the underlying socket
            	//e.Socket.Send(....)
            
            }
            
            
            
[Visual Basic]
            Sub SendEmail()
               EmailMessage.LoadLicenseFile("c:\aspnetemail.xml.lic")
               
               'load the values from the .config file. see the help for more information on this .ctor
               Dim m As New EmailMessage(True, False)
               
               m.Subject = "a test email to test the BeforeSmtpServer event"
               m.Body = "test test"
               m.To = "dave@aspnetemail.com"
               m.LogPath = "c:\email.log"
               m.LogOverwrite = True
               m.Logging = True
               
               AddHandler m.BeforeSmtpSend, AddressOf OnBeforeSmtpServerSend
               m.Send()
               Console.WriteLine("done...")
               Console.ReadLine()
            End Sub 'SendEmail
            
            
            Private Sub OnBeforeSmtpServerSend(sender As Object, e As BeforeSmtpSendEventArgs)
               Console.WriteLine(e.Text)
               Console.WriteLine(e.SmtpState)
               
               'here we could do some checking, and over ride the data sent to the server
               If e.SmtpState = SmtpState.MailFrom Then
                  'here we could change the mail from info
                  e.Text = "Mail From:<test@test.com>" + ControlChars.Cr + ControlChars.Lf
               End If
            End Sub 'OnBeforeSmtpServerSend
             
            'if we wanted to cancel sending this command we set
            'e.Cancel = true;
            'this will not close the socket connection, but simply not send the value of e.Text
            
            'if we want to write directly to the socket, we have access to the underlying socket
            'e.Socket.Send(....)
            
            End Sub 'Server_OnResponse 		
            
            

See Also

EmailMessage Class | aspNetEmail Namespace