Aplicativo Desktop - Envio de Email

20/08/2009

Amigos,         Como posso criar um aplicativo desktop VB.NET que possa enviar email?   Este pode por exemplo se conectar ao Outlook Express e enviar este email!   Fico no aguardo    
Fernando Reis

Fernando Reis

Curtidas 0

Respostas

Fabio Mans

Fabio Mans

20/08/2009

Não precisa se conectar a nenhum programa de e-mail, o Framework possui classes para realizar todo este trabalho.




Veja um exemplo Web





Imports System.Net.Mail



Protected Sub btnEnviar_Click(ByVal sender As Object, ByVal e As EventArgs)
    If Page.IsValid Then
        Try
           
            txtMensagem.Text = txtMensagem.Text.Replace(vbLf, "<BR>")
            txtMensagem.Text = txtMensagem.Text.Replace("'", "")
            Dim TextoCompleto As String = txtMensagem.Text
           
           
            ' create the message
            Dim mail As New MailMessage()
            ' set the sender's address and display name
            mail.From = New MailAddress(email.Text, nome.Text)
            ' add a first recipient by specifying only her address
            mail.[To].Add("mcontabil@mcontabil.com.br")
            Dim mensagem As New StringBuilder()
            mensagem.Append("Formulário de contato - www.mcontabil.com.br <br>")
            mensagem.Append("<br>")
            mensagem.Append("==============================================================<br>")
            mensagem.Append("<br>")
            mensagem.Append("<b>Nome</b>: " & nome.Text & "<br>")
            mensagem.Append("<b>E-mail</b>: " & email.Text & "<br>")
            mensagem.Append("<b>Telefone</b>: " & telefone.Text & "<br>")
            mensagem.Append("<b>Mensagem</b>:<br>")
            mensagem.Append(TextoCompleto & "<br>")
            mensagem.Append("==============================================================<br>")
            mensagem.Append("<br>")
            mail.Subject = "Formulário de contato - www.mcontabil.com.br"
            mail.Body = mensagem.ToString()
            mail.IsBodyHtml = True
            ' set the mail’s priority to high
            mail.Priority = MailPriority.Normal
            Dim smtpClient As New SmtpClient()
            smtpClient.Send(mail)
           
            lblMsg.Text = "Mensagem enviada com sucesso"
            btnEnviar.Enabled = False
           
            ApagarTextBox(Me)
        Catch ex As Exception
            lblMsg.Text = ex.Message
        End Try
       
       
    End If
End Sub



Web.Config






<system.net>
        <mailSettings>
            <smtp from="mcontabil@mcontabil.com.br">
                <network host="smtpkkjjkll.com.br" password="jkjj" userName="mcontabil@kjkl.com.br"/>
            </smtp>
        </mailSettings>
    </system.net>
 
GOSTEI 0
Fernando Reis

Fernando Reis

20/08/2009

Fabio,     Até aqui bacana,   mas oque não entendi é como fazer isto especificamente com um programa  DESKTOP!!       Mandar um email pelo asp.net eu ja faço normalmente mas não sei como fazer isto  sem ser asp.net       pode ajudar
GOSTEI 0
Fabio Mans

Fabio Mans

20/08/2009

AS classes são as mesmas, o detalhe é saber em que momento. Você quer mandar e-mail quando o usuário clicar em um botão, ou você quer fazer um serviço que dispare e-mail todo madrugada, o que você precisa? O que você faz na Web será feito no Desktop.   Quando você fala Desktop está se referindo a Windows Forms?   Fabio
GOSTEI 0
Fernando Reis

Fernando Reis

20/08/2009

Olá Fabio,     Sim é isto mesmo,   esout falando do Windows Forms,   Com asp.net  ( de forma resumida)   entendo que uso o componente mail e depois acrescento as informações de Host , usuário e senha para que ele tenha as Informações , mas como fazer isto no Windows Forms,     Veja meu exemplo:     Estou criando um aplicativo de cadastro de Clientes ( prospecção de novos clientes).     Quando faço o cadastro deste cliente, eu sempre tenho que abrir o outlook , preparar um novo email, anexar uma apresentação e enviar.     Gostaria de Minimizar este problema acrescentando um botão,   "ENVIAR APRESENTAÇÃO"  ao lado da caixa de email deste cliente.     Espero ter sido mais claro e obrigado pela ajuda.               
GOSTEI 0
Fabio Mans

Fabio Mans

20/08/2009

Segue outro exemplo.



using System.Net.Mail; //Importar
using System.Net.Mime;
using System.Windows.Forms;


namespace ConsultoriaWindows
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {

           EnviaEmail(); //Clique do botão no Windows Forms
          
        }

       
       

        # region EnviaEmail
        public void EnviaEmail()
        {
            MailMessage message = new MailMessage();
            message.To.Add("f.galante@gruposbf.com.br"); //Para
            message.From = new MailAddress("f.galante@gruposbf.com.br"); //De
            message.Subject = "Serviço imagem pasta"; //Assunto veja no meu Outlook imagem abaixo.
            message.Body = "Corpo do Email"; //Corpo
            message.Priority = MailPriority.High; //Prioridade
            message.Attachments.Add(new Attachment(@"c:\alan.xml", MediaTypeNames.Application.Octet)); //Anexo
            SmtpClient mailClient = new SmtpClient();
            mailClient.Host = "smtpsp"; //Smtp
            mailClient.Credentials = new System.Net.NetworkCredential("f.galante@gruposbf.com.br", "1010"); // Usuário e senha
            mailClient.Send(message); // Envio
        }
        # endregion
    }
}


Resultado do método acima na caixa do meu Outlook





Espero ter ajudado.

Fabio
GOSTEI 0
Fernando Reis

Fernando Reis

20/08/2009

Obrigado,     Resolvido!          
GOSTEI 0
POSTAR