Exemplo n.º 1
0
        /// <summary>
        /// Handle the MAIL FROM:&lt;address&gt; command.
        /// </summary>
        private void Mail(SmtpContext context, string argument)
        {
            bool addressValid = false;
            if (context.LastCommand == COMMAND_HELO)
            {
                string address = ParseAddress(argument);
                if (address != null)
                {
                    try
                    {
                        EmailAddress emailAddress = new EmailAddress(address);
                        context.Message.FromAddress = emailAddress;
                        context.LastCommand = COMMAND_MAIL;
                        addressValid = true;
                        context.WriteLine(MESSAGE_OK);
                    }
                    catch
                    {
                        // This is fine, just fall through.
                    }
                }

                // If the address is invalid, inform the client.
                if (!addressValid)
                {
                    context.WriteLine(MESSAGE_INVALID_ADDRESS);
                }
            }
            else
            {
                context.WriteLine(MESSAGE_INVALID_COMMAND_ORDER);
            }
        }
Exemplo n.º 2
0
        /// <summary>
        /// Handle the RCPT TO:&lt;address&gt; command.
        /// </summary>
        private void Rcpt(SmtpContext context, string argument)
        {
            if (context.LastCommand == COMMAND_MAIL || context.LastCommand == COMMAND_RCPT)
            {
                string address = ParseAddress(argument);
                if (address != null)
                {
                    try
                    {
                        //EmailAddress emailAddress = new EmailAddress(address);

                        // Check to make sure we want to accept this message.
                        //if (recipientFilter.AcceptRecipient(context, emailAddress))
                        //{
                        EmailAddress emailAddress = new EmailAddress(address);
                        context.Message.AddToAddress(emailAddress);
                        context.LastCommand = COMMAND_RCPT;
                        context.WriteLine(MESSAGE_OK);
                        //}
                        //else
                        //{
                        //    context.WriteLine(MESSAGE_UNKNOWN_USER);
                        //    if (log.IsDebugEnabled) log.Debug(String.Format("Connection {0}: RcptTo address: {1} rejected.  Did not pass Address Filter.", context.ConnectionId, address));
                        //}
                    }
                    catch
                    {
                        context.WriteLine(MESSAGE_INVALID_ADDRESS);
                    }
                }
                else
                {
                    context.WriteLine(MESSAGE_INVALID_ADDRESS);
                }
            }
            else
            {
                context.WriteLine(MESSAGE_INVALID_COMMAND_ORDER);
            }
        }
Exemplo n.º 3
0
 /// <summary>
 /// Handle the RCPT TO:&lt;address&gt; command.
 /// </summary>
 private void Rcpt(SmtpContext context, string argument)
 {
     if (context.LastCommand == COMMAND_MAIL || context.LastCommand == COMMAND_RCPT)
     {
         string address = this.ParseAddress(argument);
         if (address != null)
         {
             try
             {
                 EmailAddress emailAddress = new EmailAddress(address);
                 context.Message.AddRecipient(emailAddress);
                 context.LastCommand = COMMAND_RCPT;
                 context.WriteLine(MESSAGE_OK);
             }
             catch
             {
                 context.WriteLine(MESSAGE_INVALID_ADDRESS);
             }
         }
         else
         {
             context.WriteLine(MESSAGE_INVALID_ADDRESS);
         }
     }
     else
     {
         context.WriteLine(MESSAGE_INVALID_COMMAND_ORDER);
     }
 }
Exemplo n.º 4
0
 public void AddRecipient(EmailAddress recipient)
 {
     this.recipients.Add(recipient);
 }
Exemplo n.º 5
0
 /// <summary>Addes an address to the recipient list.</summary>
 public void AddToAddress(EmailAddress address)
 {
     recipientAddresses.Add(address);
 }
Exemplo n.º 6
0
 /// <summary>Addes an address to the recipient list.</summary>
 public void AddToAddress( EmailAddress address )
 {
     recipientAddresses.Add( address );
 }
Exemplo n.º 7
0
 public void AddRecipient(EmailAddress recipient)
 {
     this.recipients.Add(recipient);
 }