quinta-feira, 23 de julho de 2015

SMTP Util

using System;
using System.Net.Mail;
using System.Text;
using System.Configuration;
using System.Net;

namespace Lapuinka.Utils
{
    ///
    /// Classe Email.
    ///
    public class Email
    {
        #region [ Atributos ]

        ///
        /// Nome do servidor de email
        ///
        private readonly string _mailServer;

        ///
        /// Porta do servidor de email
        ///
        private readonly int _serverPort;

        ///
        /// _mailUser.
        ///
        private readonly string _mailUser;

        ///
        /// _mailUserPassWord.
        ///
        private readonly string _mailUserPassword;

        #endregion

        #region [ Construtor ]

        ///
        /// Construtor.
        ///
        public Email()
        {

        }

        #endregion

        #region [ Métodos ]

        ///
        /// Método GetSmtpServer.
        ///
        /// Return the server.
        private string GetSmtpServer()
        {
            return ConfigurationSettings.AppSettings["SmtpServer"].ToString();
        }

        ///
        /// Método GetMailFrom.
        ///
        ///
        private string GetMailFrom()
        {
            return ConfigurationSettings.AppSettings["MailFrom"].ToString();
        }
        ///
        /// Método Enviar.
        /// Envia um email.
        ///
        /// Remetente do Email
        /// Destinatários do Email
        /// Destinatários de cópia do email
        /// Destinatários de cópia oculta do email
        /// Assunto do email
        /// Conteúdo do email
        /// Return Boolean
        public bool Enviar(string to, string cc, string cco, string assunto, string conteudo)
        {
            string message = string.Empty;
            return Enviar(to, cc, cco, assunto, conteudo, null, out message);
        }

        ///
        /// Método Enviar.
        /// Envia um email.
        ///
        /// Remetente do Email
        /// Destinatários do Email
        /// Destinatários de cópia do email
        /// Destinatários de cópia oculta do email
        /// Assunto do email
        /// Conteúdo do email
        /// Anexo
        /// Return Boolean
        public bool Enviar(string to, string cc, string cco, string assunto, string conteudo, Attachment anexo, out string message)
        {
            message = "";
            // MailMessage.
            MailMessage mail = new MailMessage();

            // SmtpClient.
            SmtpClient smtp;

            // Retorno.
            bool retorno = true;

            try
            {
                mail.From = new MailAddress(GetMailFrom());
                mail.To.Add(new MailAddress(to));
                if (cc != string.Empty)
                {
                    mail.CC.Add(new MailAddress(cc));
                }

                mail.Subject = assunto;
                mail.Body = conteudo;
                mail.BodyEncoding = Encoding.UTF8;
                mail.SubjectEncoding = Encoding.UTF8;
                mail.IsBodyHtml = true;
                if(anexo!=null){
                    mail.Attachments.Add(anexo);
                }
                smtp = new SmtpClient(GetSmtpServer());
                smtp.Send(mail);
              
            }
            catch (Exception ex)
            {
                message = ex.Message;
                retorno = false;
            }
            finally
            {
                mail.Dispose();
            }

            return retorno;
        }

        #endregion
    }

}
Postar um comentário