Usuário com melhor resposta
Envio de Email por aplicação

Pergunta
-
Estou implementando uma funcionalidade de envio de e-mail automaticamente através de uma aplicacao web. eu testei alguns codigos em uma aplicacao windows forms e funcionou. o codigo é o abaixo:
'montando a mensagem
mailMsgMensagem =
New MailMessage("info@empresa.com", "teste@empresa.com" )mailMsgMensagem.Subject =
"Mensagem do Sistema"mailMsgMensagem.Body = strMensagem.ToString
'enviando a mensagemClientSMTP =
New SmtpClient("Servidor")ClientSMTP.UseDefaultCredentials =
TrueClientSMTP.Send(mailMsgMensagem)
A questão é a seguinte: na minha aplicação web, este mesmo codigo nao funciona, e eu gostaria de saber se existe algum problema no mesmo ou se tenho que fazer alguma adaptacao para que funcione no Asp.NET
[]s - Flavio
Respostas
-
Flávio, se for o que estou pensando, seu servidor de SMTP exige autenticação para envio de e-mails externos com relação ao domínio, ou se seja, tem que ser um e-mail registrado no servidor de e-mails. Caso contrário, só envia autenticado.
Você deve tirar a linha DEFAULTCREDENTIALS e efetuar a autenticação.
Você pode fazer a autenticação da seguinte forma:
ex.:
Dim sm As New SmtpClient(Host, Port)
With sm
.EnableSsl = True
.Credentials = New NetworkCredential("usuario", "senha")
End WithEspero ter ajudado!
-
Consegui fazer o envio do e-mail.
o codigo ficou da seguinte forma:
'montando o arquivo da mensagem que ser enviada
mailMsgMensagem =
New MailMessage(user@server.dominio, teste@teste.com.br)mailMsgMensagem.Subject =
"Mensagem do Sistema"mailMsgMensagem.Body = strMensagem.ToString
'selecionando as credenciais para o envio da mensagem Dim MailCredential As New System.Net.NetworkCredentialMailCredential.Domain =
"Dominio"MailCredential.Password =
"Senha Dominio"MailCredential.UserName =
"Usuario" 'Selecionando o servidor SMTPClientSMTP =
New SmtpClient("Servidor SMTP")ClientSMTP.Credentials = MailCredential
'enviando a mensagemClientSMTP.Send(mailMsgMensagem)
caso alguem passe por este problema, a solucao acima ira atender as necessidades... e aproveito para agradecer ao Fabiano Santiago pela atencao e respostas...
[]s - Flavio
Todas as Respostas
-
-
-
-
se eu retirar esta linha, eu nao consigo autenticar no meu servidor de exchange....
ma verdade, o que está acontecendo é isso. ja pequei quase todos os exemplos do msdn e nao consigo autenticar no servidor....
se vc tiver alguma sugestao...
Atenciosamente
Flavio
-
-
O erro que está sendo exibido é o seguite:
Mailbox unavailable. The server response was: 5.7.1 Unable to relay for flavio@amplaconsultoria.com.br
mas eu fiz alguns testes e percebi uma coisa:
se eu coloco o "to" da minha mensagem como o nome de usuario do dominio (user@domain.net) é enviada a mensagem. mas tem um porem, o exchange está configurado o smtp externo e nao o nome de usuario da rede... nao sei se soube explicar direito entao, qualquer coisa poste ou me envie...
Flavio.
-
Flávio, se for o que estou pensando, seu servidor de SMTP exige autenticação para envio de e-mails externos com relação ao domínio, ou se seja, tem que ser um e-mail registrado no servidor de e-mails. Caso contrário, só envia autenticado.
Você deve tirar a linha DEFAULTCREDENTIALS e efetuar a autenticação.
Você pode fazer a autenticação da seguinte forma:
ex.:
Dim sm As New SmtpClient(Host, Port)
With sm
.EnableSsl = True
.Credentials = New NetworkCredential("usuario", "senha")
End WithEspero ter ajudado!
-
Consegui fazer o envio do e-mail.
o codigo ficou da seguinte forma:
'montando o arquivo da mensagem que ser enviada
mailMsgMensagem =
New MailMessage(user@server.dominio, teste@teste.com.br)mailMsgMensagem.Subject =
"Mensagem do Sistema"mailMsgMensagem.Body = strMensagem.ToString
'selecionando as credenciais para o envio da mensagem Dim MailCredential As New System.Net.NetworkCredentialMailCredential.Domain =
"Dominio"MailCredential.Password =
"Senha Dominio"MailCredential.UserName =
"Usuario" 'Selecionando o servidor SMTPClientSMTP =
New SmtpClient("Servidor SMTP")ClientSMTP.Credentials = MailCredential
'enviando a mensagemClientSMTP.Send(mailMsgMensagem)
caso alguem passe por este problema, a solucao acima ira atender as necessidades... e aproveito para agradecer ao Fabiano Santiago pela atencao e respostas...
[]s - Flavio
-
Estou usando o mesmo código, mas sem sucesso.
A mensagem de erro é: {"Failure sending mail."}
Inner Exception: {"Unable to read data from the transport connection: net_io_connectionclosed."}
Pelo jeito vou ter que usar o método anterior MAILMESSAGE() mesmo ele sendo obsoleto.
Obrigado!
-
-
Respondendo sua pergunta, eu nao fiz nenhuma alteracao no servidor.
talvez seja necessario você usar um tipo de autenticacao segura, ssl, para conectar-se e enviar o e-mail.
isso voce pode fazer usando o codigo:
ClientSMTP.Credentials = MailCredential
ClientSMTP.EnableSsl = True
Talvez isso responda sua pergunta.
[]s
Flavio
-
Flávio. Realmente vc se certificou que o servidor smtp que vc utilizou no código está marcado a opção autenticação requerida? Não consegui de jeito nenhum usando o framework 2.0. Sempre retornando a exceção autenticação rquerida para delay.
Tive que voltar nao método obsoleto do framework 1.1 utilizando esquema da Microsoft para autenticar.
Responda se possível