Aplicativo Desktop - Envio de Email
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
Curtidas 0
Respostas
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>
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
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
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
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
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
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
20/08/2009
Obrigado,
Resolvido!
GOSTEI 0