Array
(
)

Enviar email asp.net com contas que requerem authenticação

Filipecrocks
   - 12 set 2007

Olá

Pessoal procurei em diversos lugares já e não encontrei como mandar emails usando um provedor de emails que requer autheticação como o google ou algum outro desses pagos

Até encontrei uns esquemas da microsoft para tentar usar mas não rolou

Alguém sabe de algum modo de fazer isso???

Obrigado a todos pela atenção

Abraço

Filipe

Mr. Mini-mite
   - 18 set 2007

Olá filipe...

Eu estava com problemas assim semana passada, se for o mesmo problema que eu tive é só adiciona a linha ´Smtp.EnableSsl = True´, deve ficar algo assim:

#Código

Dim Smtp As New SmtpClient    ´cria o objeto SMTP
        Smtp.Host = "smtp.gmail.com"
        Smtp.Port = 587
        Smtp.EnableSsl = True


Se o restante de seu código estiver correto, deve dar certo agora.

Boa sorte, e não se esqueça de postar o resultado.

Filipecrocks
   - 28 set 2007

Tentei com esse codigo e não funcionou

Da uma olhada no codigo que estou usando

try
{
SmtpClient client = new SmtpClient(´smtp.gmail.com´);
client.UseDefaultCredentials = false;
client.Port = 465;
client.EnableSsl = true;
client.Credentials = new System.Net.NetworkCredential(´xxxxx@gmail.com´, ´xxx´);
client.DeliveryMethod = SmtpDeliveryMethod.Network;

MailMessage mail = new MailMessage();
MailAddress fromAddress = new MailAddress(txtEmail.Text, txtName.Text);
mail.From = fromAddress;
mail.To.Add(´filipexxx@xxxx.com´);
mail.Subject= ´Cadastro ´;
mail.Body = ´Cadastro efetuado em: ´ + DateTime.Now + ´
´ +
´Nome: ´ + txtName.Text + ´
´ +
´Cidade: ´ + txtCidade.Text + ´
´ +
´Email: ´ + txtEmail.Text + ´
´ +
´Mensagem: ´ + txtMessage.Text + ´
´;

mail.IsBodyHtml = true;

client.Send(mail);
}
catch (Exception ex)
{
lblStatus.Text = ´Falha no envio.
´ + ex.Message;
}
finally
{
Panel1.Visible = false;
Panel2.Visible = true;
lblOK.Text = ´Cadastro enviado com sucesso!!!´;
}

Estou tentando achar essa solução porque não consigo fazer esse form de cadastro com emais que requerem autenticação de segurança

Ja tentei até baixar uns componentes para conseguir isso e nada

Tentei também com...
mail.Fields.Add(´http://schemas.microsoft.com/cdo/configuration/smtpauthenticate´, ´1´);//basic authentication
mail.Fields.Add(´http://schemas.microsoft.com/cdo/configuration/sendusername´, ´my_username_here´); //set your username here
mail.Fields.Add(´http://schemas.microsoft.com/cdo/configuration/sendpassword´, ´super_secret´);//set your password here

Mas também não vai

Obrigado pela atenção ae brother
Se resolvermos esse problema vamos postar em varios lugares que tem muitas pessoas com o mesmo..heh

Abraço

Filipe

Mr. Mini-mite
   - 01 out 2007

Bom, não tentei testar seu código, mas vou te passar o meu, tah em vb, mas já ajuda:
#Código

Protected Sub disparaEmail()
        Dim objMailMessage As New MailMessage
        With objMailMessage
            .To.Add("email_de_destino@msn.com")
            ´.CC.Add("teste1@gmail.com")
            ´.Bcc.Add("teste2@gmail.com")
            .From = New MailAddress("usuario@gmail.com")
            .Subject = "Teste de envio de e-mail"
            .Body = "Parabéns, sua página aspx envia e-mails"
            .Priority = MailPriority.High
            .IsBodyHtml = True
            .DeliveryNotificationOptions = DeliveryNotificationOptions.Never
        End With
        ´Se quiser anexar um arquivo:
        ´Dim arquivo As New System.Net.Mail.Attachment("c:\fatura.txt")
        ´objMailMessage.Attachments.Add(arquivo)
        ´Indicar o servidor de SMTP para envio de e-mail: 
        Dim Smtp As New SmtpClient    ´cria o objeto SMTP
        Smtp.Host = "smtp.gmail.com"
        Smtp.Port = 587 ´465 ´587 ´25
        Smtp.EnableSsl = True
        Try
            ´Envia o email:
            Smtp.Send(objMailMessage)
            ´Mostra um alerta ao usuário de que o e-mail foi enviado com sucesso:
            Dim script As String = "<script>alert(‘Enviado com sucesso!´);</script>"
            ClientScript.RegisterClientScriptBlock(Me.GetType, "clientScript", script)
        Catch ex As Exception
            ´Mostra um alerta ao usuário de que o e-mail NÃO foi enviado:
            Dim script As String = "<script>alert(‘Erro ao enviar o e-mail!´);</script>"
            ClientScript.RegisterClientScriptBlock(Me.GetType, "clientScript", script)
        End Try
    End Sub

E no web.config vc adiciona essas linhas:
#Código
<configuration>
 <system.net>
  <mailSettings>
   <smtp>
    <network host="smtp.gmailcom" port="587" userName="usuario)" password="senha"/>
   </smtp>
  </mailSettings>
 </system.net>
 <appSettings/>
 <connectionStrings/>
 <system.web>

É só vc preencher seus dados nessas linhas,
To.Add(´email_de_destino@msn.com´)
New MailAddress(´usuario@gmail.com´)
password=´senha´
userName=´usuario´
e ve se funciona, aí vc traduz pra C#, deve dar certo.
Boa sorte...