Autenticação para envio de e-mail
05/03/2009
0
Estou tentando enviar e-mail utilizando o namespace ( Imports System.Net.Mail ), mas, como é através de um e-mail yahoo, o mesmo retorna uma excessão informando que o servidor requer autenticação. Como devo proceder para autenticar vaia código.
Grato.
Grato.
Emir Neto
Curtir tópico
+ 0
Responder
Posts
05/03/2009
Guilhermehao
Ai vai um exemplo prático..acredito q no seu caso deva ser por causa do Ip do servidor..e também o mesmo está com o serviço de SMTP.
E também a configuração
imports system.net.mail ´cria um objeto do tipo mail message que contém as informações do e-mail dim email as new mailmessage ´remetente email.from = new mailaddress(txtde.text) ´destinatario email.to.add(txtpara.text) ´destinatario de copia do email email.to.add(txtcc.text) ´destinatario de copia oculta email.bcc.add(txtcco.text) ´prioridade de envio email.priority = mailpriority.high ´formato do email email.isbodyhtml = true ´assunto do email email.subject = txtassunto.text ´mensagem do email email.body = txtmensagem.text ´cria o objeto smtp dim smtp as new smtpclient smtp.host = "informe aqui o endereco ip do servidor" smtp.port = 25 try ´envia o email smtp.send(email) ´envia um alerta ao usuario que o e-mail foi enviado com sucesso dim script as string = "<script>alert(´email enviado com sucesso!´); </script>" clientscript.registerclientscriptblock(me.gettype, "clientscript", script) catch ex as exception ´envia um alerta ao usuario que o e-mail foi enviado com sucesso dim script as string = "<script>alert(´houve um erro ao enviar o e-mail!´);</script>" clientscript.registerclientscriptblock(me.gettype, "clientscript", script) finally end try
E também a configuração
<configuration> <system.net> <mailsettings> <smtp> <network host="servidor" port="25" username="usuario" password="senha" /> </smtp> </mailsettings> </system.net>
Responder
05/03/2009
Emir Neto
Desculpe, estou utilizando winforms
Veja bem, este é meu código:
Imports System.Net.Mail
Public Class frmEmail
´usado para armazenar os anexos
Dim Attachment As System.Net.Mail.Attachment
´cria uma mensagem a enviar
Dim Mailmsg As New System.Net.Mail.MailMessage()
Private Sub btnIncluiAnexo_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnIncluiAnexo.Click
´Mostra caixa de dialogo para selecionar anexos
Dim Conta As Integer
ofdAnexo.CheckFileExists = True
ofdAnexo.Title = ´Selecione um arquivo para anexar´
ofdAnexo.ShowDialog()
For Conta = 0 To UBound(ofdAnexo.FileNames)
lstAnexos.Items.Add(ofdAnexo.FileNames(Conta))
Next
End Sub
Private Sub btnExcluiAnexo_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnExcluiAnexo.Click
´Remove os anexos
If lstAnexos.SelectedIndex > -1 Then
lstAnexos.Items.RemoveAt(lstAnexos.SelectedIndex)
End If
End Sub
Private Sub btnEnviaMail_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnEnviaMail.Click
Dim i As Integer = 0
´validação dos dados
If txtSMTP.Text = ´´ Then
MsgBox(´Informe o nome do servidor SMTP ...!!!´, MsgBoxStyle.Information, ´Envia Email´)
Exit Sub
End If
If txtDe.Text = ´´ Then
MsgBox(´Informe o endereço de Origem ...!!!´, MsgBoxStyle.Information, ´Envia Email´)
Exit Sub
End If
If txtPara.Text = ´´ Then
MsgBox(´Informe o endereço de destino ...!!!´, MsgBoxStyle.Information, ´Envia Email´)
Exit Sub
End If
If txtAssunto.Text = ´´ Then
MsgBox(´Informe o assunto do email ...!!!´, MsgBoxStyle.Information, ´Envia Email´)
Exit Sub
End If
´ Define a prioridade da mensagem como normal
Select Case cmbPrioridade.Items.Count
Case 1
Mailmsg.Priority = MailPriority.Low
Case 3
Mailmsg.Priority = MailPriority.High
Case Else
Mailmsg.Priority = MailPriority.Normal
End Select
´endereca o enviador
Mailmsg.From = New MailAddress(txtDe.Text)
´endereca o recipiente
Mailmsg.To.Add(New MailAddress(txtPara.Text))
Dim mSmtpCliente As New SmtpClient(txtSMTP.Text)
´Especifica o formato
If chkEnvHTML.Checked = True Then
Mailmsg.IsBodyHtml = True
End If
´define o assunto
Mailmsg.Subject = txtAssunto.Text
´Anexa os arquivos um por um
For i = 0 To lstAnexos.Items.Count - 1
Mailmsg.Attachments.Add(New Attachment(lstAnexos.Items(i)))
Next
´Corpo do EMail
Mailmsg.Body = txtMensagem.Text
´ENvia o email
mSmtpCliente.Send(Mailmsg)
End Sub
End Class
Veja bem, este é meu código:
Imports System.Net.Mail
Public Class frmEmail
´usado para armazenar os anexos
Dim Attachment As System.Net.Mail.Attachment
´cria uma mensagem a enviar
Dim Mailmsg As New System.Net.Mail.MailMessage()
Private Sub btnIncluiAnexo_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnIncluiAnexo.Click
´Mostra caixa de dialogo para selecionar anexos
Dim Conta As Integer
ofdAnexo.CheckFileExists = True
ofdAnexo.Title = ´Selecione um arquivo para anexar´
ofdAnexo.ShowDialog()
For Conta = 0 To UBound(ofdAnexo.FileNames)
lstAnexos.Items.Add(ofdAnexo.FileNames(Conta))
Next
End Sub
Private Sub btnExcluiAnexo_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnExcluiAnexo.Click
´Remove os anexos
If lstAnexos.SelectedIndex > -1 Then
lstAnexos.Items.RemoveAt(lstAnexos.SelectedIndex)
End If
End Sub
Private Sub btnEnviaMail_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnEnviaMail.Click
Dim i As Integer = 0
´validação dos dados
If txtSMTP.Text = ´´ Then
MsgBox(´Informe o nome do servidor SMTP ...!!!´, MsgBoxStyle.Information, ´Envia Email´)
Exit Sub
End If
If txtDe.Text = ´´ Then
MsgBox(´Informe o endereço de Origem ...!!!´, MsgBoxStyle.Information, ´Envia Email´)
Exit Sub
End If
If txtPara.Text = ´´ Then
MsgBox(´Informe o endereço de destino ...!!!´, MsgBoxStyle.Information, ´Envia Email´)
Exit Sub
End If
If txtAssunto.Text = ´´ Then
MsgBox(´Informe o assunto do email ...!!!´, MsgBoxStyle.Information, ´Envia Email´)
Exit Sub
End If
´ Define a prioridade da mensagem como normal
Select Case cmbPrioridade.Items.Count
Case 1
Mailmsg.Priority = MailPriority.Low
Case 3
Mailmsg.Priority = MailPriority.High
Case Else
Mailmsg.Priority = MailPriority.Normal
End Select
´endereca o enviador
Mailmsg.From = New MailAddress(txtDe.Text)
´endereca o recipiente
Mailmsg.To.Add(New MailAddress(txtPara.Text))
Dim mSmtpCliente As New SmtpClient(txtSMTP.Text)
´Especifica o formato
If chkEnvHTML.Checked = True Then
Mailmsg.IsBodyHtml = True
End If
´define o assunto
Mailmsg.Subject = txtAssunto.Text
´Anexa os arquivos um por um
For i = 0 To lstAnexos.Items.Count - 1
Mailmsg.Attachments.Add(New Attachment(lstAnexos.Items(i)))
Next
´Corpo do EMail
Mailmsg.Body = txtMensagem.Text
´ENvia o email
mSmtpCliente.Send(Mailmsg)
End Sub
End Class
Responder
Clique aqui para fazer login e interagir na Comunidade :)