Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Olá, pessoal...
tenho um code de envio de email que sempre funcionou normal, porém agora a empresa contratou um serviço de SMTP (para enviar mais emails, sem ser considerados spams), porem o code abaixo fala que a conta não existe...
Alguém já teve este problema ?
É preciso configurar alguma coisa a mais para o envio de email autenticado...
O EnableSsl está como false, pois estou usando a porta 587, conforme a própria locaweb recomendou, endereço SMTP correto
<%@ Page Language="VB" %>
<%@ Import Namespace="System.Net.Mail" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">
Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs)
'Define os dados do e-mail
Dim nomeRemetente as string
Dim emailRemetente as string
Dim senha as string
nomeRemetente = "chospir"
emailRemetente = "emailok@chospir.com.br"
senha = "YFUçlpD147gh"
Dim emailDestinatario as string
Dim emailComCopia as string
Dim emailComCopiaOculta as string
emailDestinatario = "teste@terra.com.br"
emailComCopia = "contato@teste.com.br"
emailComCopiaOculta = "email@comcopiaoculta.com.br"
'Host da porta SMTP
Dim SMTP as string
SMTP = "smtplw.com.br"
Dim assuntoMensagem as string
Dim conteudoMensagem as string
assuntoMensagem = "Teste de envio de emails"
conteudoMensagem = "Teste de envio de emails"
'Cria objeto com dados do e-mail.
Dim objEmail As New System.Net.Mail.MailMessage()
'Define o Campo From e ReplyTo do e-mail.
objEmail.From = New System.Net.Mail.MailAddress("<" & emailRemetente & ">")
'objEmail.ReplyTo = New System.Net.Mail.MailAddress("Sintchospir <sintchospir@sintchospir.com.br>")
'Define os destinatários do e-mail.
objEmail.To.Add("<" & emailDestinatario & ">")
'Define a prioridade do e-mail.
objEmail.Priority = System.Net.Mail.MailPriority.Normal
'Define o formato do e-mail HTML (caso não queira HTML alocar valor false)
objEmail.IsBodyHtml = True
'Define o título do e-mail.
objEmail.Subject = assuntoMensagem
'Define o corpo do e-mail.
objEmail.Body = "<b>" & conteudoMensagem & "</b>"
'Para evitar problemas com caracteres "estranhos", configuramos o Charset para "ISO-8859-1"
objEmail.SubjectEncoding = System.Text.Encoding.GetEncoding("ISO-8859-1")
objEmail.BodyEncoding = System.Text.Encoding.GetEncoding("ISO-8859-1")
'Cria objeto com os dados do SMTP
Dim objSmtp as New System.Net.Mail.SmtpClient(SMTP, 587)
'Alocamos o endereço do host para enviar os e-mails
objSmtp.Credentials = New System.Net.NetworkCredential(emailRemetente, senha)
objSmtp.Host = SMTP
objSmtp.Port = 587
objSmtp.EnableSsl = False 'true se o SmtpClient usar SSL; caso contrário, false. O padrão é false, mas seta ele só para garantir
'Enviamos o e-mail através do método .send()
Try
objSmtp.Send(objEmail)
Response.Write("E-mail enviado com sucesso !")
Catch ex As Exception
Response.Write("Ocorreram problemas no envio do e-mail. Erro = " & ex.Message)
End try
'excluímos o objeto de e-mail da memória
objEmail.Dispose()
'anexo.Dispose();
End Sub
</script>Pode postar o stacktrace completo do erro ?
Olá quintelab... segue:
>
Citar
{"Erro no processamento. A resposta do servidor foi: 4.3.0 <END-OF-MESSAGE>: End-of-data rejected: Conta nao encontrada. Tente novamente em alguns minutos"}
Data: {System.Collections.ListDictionaryInternal}
HResult: -2146233088
HelpLink: Nothing
InnerException: Nothing
Message: "Erro no processamento. A resposta do servidor foi: 4.3.0 <END-OF-MESSAGE>: End-of-data rejected: Conta nao encontrada. Tente novamente em alguns minutos"
Source: "System"
StackTrace: " em System.Net.Mail.DataStopCommand.CheckResponse(SmtpStatusCode statusCode, String serverResponse)" & vbCrLf & " em System.Net.Mail.DataStopCommand.Send(SmtpConnection conn)" & vbCrLf & " em System.Net.Mail.SmtpConnection.OnClose(Object sender, EventArgs args)" & vbCrLf & " em System.Net.ClosableStream.Close()" & vbCrLf & " em System.Net.Mail.MailWriter.Close()" & vbCrLf & " em System.Net.Mail.SmtpClient.Send(MailMessage message)" & vbCrLf & " em Sindicato.frmDadosEmail.Button3_Click(Object sender, EventArgs e) na D:\_SISTEMAS\sindicato_sql\frmDadosEmail.vb:linha 204"
StatusCode: LocalErrorInProcessing {451}
TargetSite: {Void CheckResponse(System.Net.Mail.SmtpStatusCode, System.String)}
Porém precisa passar o nome do usuário do serviço SMTP autenticado, Senha do SMTP autenticado, Email de remetente, Senha deste email, Servidor de Saída;
em C# tem essas opções no NetworkCredential, no ASP.Net não estou conseguindo localizar, até verifiquei nas propriedades da classe, abaixo um exemplo em C#
using System;
using System.Net.Mail;
using System.Net;
namespace SmtpLocawebClient
{
class Program
{
static void Main(string[] args)
{
string from = ""; // E-mail de remetente cadastrado no painel
string to = ""; // E-mail do destinatário
string user = ""; // Usuário de autenticação do servidor SMTP
string pass = ""; // Senha de autenticação do servidor SMTP
MailMessage message = new MailMessage(from, to, "SMTP Locaweb Teste", "Eu sou o corpo da mensagem");
using (SmtpClient smtp = new SmtpClient("smtplw.com.br", 587))
{
smtp.Credentials = new NetworkCredential(user, pass);
smtp.Send(message);
}
Console.WriteLine("Mensagem enviada com sucesso!");
Console.Read();
}
}
}
existe essas opções no NetworkCredential(user, pass) em ASP.Net/VB.Net, passando o user e senha do serviço autenticado.
Valeu pela ajudaresolvi assim:
Try
Dim from As String = "**@chospir.com.br"
Dim [to] As String = "**@hotmail.com"
Dim user As String = "**"
Dim pass As String = "**"
Dim message As MailMessage = New MailMessage(from, [to], "SMTP Teste", "Eu sou o corpo da mensagem")
Using smtp As SmtpClient = New SmtpClient("smtplw.com.br", 587)
smtp.Credentials = New NetworkCredential(user, pass)
smtp.Send(message)
End Using
MessageBox.Show("E-mail enviado com sucesso !")
Catch ex As Exception
MessageBox.Show("Ocorreram problemas no envio do e-mail. Erro = " & ex.Message)
End Try
Estou verificando essas propriedades se precisam ser definidas
propriedade SmtpClient.DeliveryMethod
smtp.DeliveryMethod = SmtpDeliveryMethod.Network ‘ modo de envio
e tentar colocar o smtp.UseDefaultCredentials = false ‘ para utilizar credencias especificas
Propriedade SmtpClient.UseDefaultCredentials , ela define um valor Boolean que controla se o DefaultCredentials é enviado com solicitações.
Valor da Propriedade
Type: System.Boolean
true se as credenciais padrão forem usadas; caso contrário, false. O valor padrão é false.