using System;
using System.Net.Mail;
using System.Net;
using System.Drawing;

public partial class EnviarEmail : System.Web.UI.Page
{
    protected void btnEnviar_Click(object sender, EventArgs e)
    {
        if (!string.IsNullOrWhiteSpace(txtEmailRemetente.Text.Trim()) &&
            !string.IsNullOrWhiteSpace(txtEmailDestinatario.Text.Trim()) &&
            !string.IsNullOrWhiteSpace(txtMensagem.Text.Trim()) &&
            !string.IsNullOrWhiteSpace(txtServidor.Text.Trim()) /*&&
            !string.IsNullOrWhiteSpace(txtUsuario.Text.Trim()) &&
            !string.IsNullOrWhiteSpace(txtSenha.Text.Trim())*/
            )
        {
            MailAddress from = new MailAddress(txtEmailRemetente.Text.Trim(), txtNomeRemetente.Text.Trim());
            MailAddress to = new MailAddress(txtEmailDestinatario.Text.Trim(), txtNomeDestinatario.Text.Trim());

            MailMessage msg = new MailMessage(from, to);
            msg.Subject = txtAssunto.Text.Trim();
            msg.Body = txtMensagem.Text.Trim();
            msg.BodyEncoding = System.Text.Encoding.GetEncoding("ISO-8859-1");

            msg.Priority = MailPriority.High;
            msg.Headers.Add("Disposition-Notification-To", txtEmailRemetente.Text.Trim());

            SmtpClient smtp = new SmtpClient(txtServidor.Text.Trim());
            smtp.Credentials = CredentialCache.DefaultNetworkCredentials;
            //smtp.Credentials = new NetworkCredential(txtUsuario.Text.Trim(), txtSenha.Text.Trim());

            try
            {
                smtp.Send(msg);
                lblResult.Text = "E-mail enviado com sucesso.";
                lblResult.ForeColor = Color.Blue;
            }
            catch (SmtpFailedRecipientException ex)
            {
                lblResult.Text = ex.Message;
            }
            catch (SmtpException ex)
            {
                lblResult.Text = ex.Message;
            }
            catch (Exception ex)
            {
                lblResult.Text = ex.Message;
            }

            finally
            {
                if (smtp != null) smtp.Dispose();
                if (msg != null) msg.Dispose();                
            }
        }
        else
        {
            lblResult.Text = "Informe o e-mail do remetente, do destinatário, o nome do servidor SMTP e o texto da mensagem.";
        }
    }
}