Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Master_Cyber

Erro ao enviar email CDOSYS - porta 587

Recommended Posts

Galera preciso da ajuda de vocês..

 

Tenho esse código que envia email usando o componente CDOSYS.

 

<%

Set objEmail = CreateObject("CDO.Message")
objEmail.From = "myID@gmail.com"
objEmail.To = "meuemail@yyy.com.br"
objEmail.Subject = "New user notification for " 
objEmail.Textbody = hkm


objEmail.Configuration.Fields.Item _
   ("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
objEmail.Configuration.Fields.Item _
   ("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "smtp.empresa.com.br" 

objEmail.Configuration.Fields.Item _
   ("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 587

'Your UserID on the SMTP server
objEmail.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/sendusername") = "user@empresa.com.br"

'Your password on the SMTP server
objEmail.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/sendpassword") = "senha"
objEmail.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/smtpusessl") = 1

objEmail.Configuration.Fields.Update
objEmail.Send


%>

 

 

Ele funciona certo quando uso a porta 25. Ele autentica e envia o email.

 

Mas quando mudo a porta para 587, ele não envia e dá um erro:

 

CDO.Message.1 erro '80040213'

 

Falha na conexão do transporte com o servidor.

 

/email.asp, linha 29

 

Essa linha 29 é:

 

objEmail.Send

 

Alguem tem ideia de que pode ser??

 

Desde já agradeço

Compartilhar este post


Link para o post
Compartilhar em outros sites

Certifique-se que o smtp.empresa.com.br esta com a porta liberada

Compartilhar este post


Link para o post
Compartilhar em outros sites

Certifique-se que o smtp.empresa.com.br esta com a porta liberada

 

A porta 587 estar liberada.

 

Porque outros sistemas feitos em asp (não usa CDOSYS) e em php usam a porta 587 e envia normal.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom dia.

 

Eu uso o CDONTS.NewMail o Codigo que eu uso é o seguinte.

 

<%
dim email, telefone, assunto, opcoes, msg, mensagememail, nome, setor

nome                = trim(request.Form("nome"))
email 				= trim(request.Form("email"))
assunto				= trim(request.Form("assunto"))
telefone			= trim(request.Form("telefone"))
opcoes		        = trim(request.Form("opcoes"))
msg				    = trim(request.Form("msg"))


'response.Write(destinatario)
mensagememail = msg

set mensagem = server.createobject("CDONTS.NewMail")
mensagem.from = email
mensagem.to = "nome@email.com.br"
mensagem.Subject = assunto
mensagem.bodyformat = 0
mensagem.mailformat = 0
mensagem.Body = "<font face='Arial' color='#000' size='2'>"&opcoes&"<br>"&mensagememail&"<br><br>"&nome&"<br>"&telefone&"</font>"
mensagem.Send
Set objMail = nothing

response.Write("<script>alert('E-mail enviado com sucesso! Em breve entraremos em contato!');location='contato.asp'</script>")

%>

 

Talves esse código te ajuda.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu estou como mesmo problema, mas testei o codigo em outro servidor e funciona corretamente, o problema aqui é que existe um Firewall Linux que gerencia a VPN e esta bloqueando as portas para essa operação funcionar!

 

Veja se esse é o seu caso!

 

Outra coisa, a porta no gmail p/autenticar é a 465!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom dia.

 

Eu uso o CDONTS.NewMail o Codigo que eu uso é o seguinte.

 

<%
dim email, telefone, assunto, opcoes, msg, mensagememail, nome, setor

nome                = trim(request.Form("nome"))
email 				= trim(request.Form("email"))
assunto				= trim(request.Form("assunto"))
telefone			= trim(request.Form("telefone"))
opcoes		        = trim(request.Form("opcoes"))
msg				    = trim(request.Form("msg"))


'response.Write(destinatario)
mensagememail = msg

set mensagem = server.createobject("CDONTS.NewMail")
mensagem.from = email
mensagem.to = "nome@email.com.br"
mensagem.Subject = assunto
mensagem.bodyformat = 0
mensagem.mailformat = 0
mensagem.Body = "<font face='Arial' color='#000' size='2'>"&opcoes&"<br>"&mensagememail&"<br><br>"&nome&"<br>"&telefone&"</font>"
mensagem.Send
Set objMail = nothing

response.Write("<script>alert('E-mail enviado com sucesso! Em breve entraremos em contato!');location='contato.asp'</script>")

%>

 

Talves esse código te ajuda.

 

 

Man esse codigo não tem autenticação.

Compartilhar este post


Link para o post
Compartilhar em outros sites

o CDONSTS foi descontinuado pela microsoft e seu sucessor é o CDOSYS, o qual todos os servidores estão utilizando. alguns servidores deve-se ao fato do endereço de smtp ser diferente do nome/ip do servidor que está tentando enviar o e-mail. Isso também pode ser uma instabilidade do servidor entre em contato com seu host para ver se esta tudo ok.

Compartilhar este post


Link para o post
Compartilhar em outros sites

qual é seu host ?

 

pois a locaweb tem que ser igual o smtp com o domínio.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu uso a locaweb e também a King Host nestes servidores eu uso a CDONTS.NewMail e não tenho problema nenhum.

 

Pelo menos eu não tive por enquanto.

Compartilhar este post


Link para o post
Compartilhar em outros sites

isso pode ser uma instabilidade do host.verifique qual a versão do windows que eles esão usando se for o Win 2k que usava CDONTS, isso algumas vezes pode ocorrer também se o email inserido for inválido, para isso eu uso regular expressions, tipo:

 

^[\w-\.]{1,}\@([\da-zA-Z-]{1,}\.){1,}[\da-zA-Z-]{2,3}$

ou

^[A-Za-z0-9](([_\.\-]?[a-zA-Z0-9]+)*)@([A-Za-z0-9]+)(([\.\-]?[a-zA-Z0-9]+)*)\.([A-Za-z]{2,})$

 

Function isValidEmail(myEmail)
 dim isValidE
 dim regEx

 isValidE = True
 set regEx = New RegExp

 regEx.IgnoreCase = False

 regEx.Pattern = "^[A-Za-z0-9_\-](([_\.\-]?[a-zA-Z0-9_\-]+)*)@([A-Za-z0-9]+)(([\.\-]?[a-zA-Z0-9]+)*)\.([A-Za-z]{2,})$"
 isValidE = regEx.Test(myEmail)

 isValidEmail = isValidE
End Function

 

eu uso assim o CDOSYS.

 

O CDOsys é o componente de envio de e-mails da Microsoft em servidores Windows. É a versão mais atualizada do antigo CDOnts, que não é mais suportado em vários servidores. Lembrando que mesmo no envio de mensagem autenticado o remetente da mensagem deverá ser uma conta de e-mail válida do domínio .


[code]<% 
'CRIA A INSTANCIA COM O OBJETO CDOSYS 
Set objCDOSYSMail = Server.CreateObject("CDO.Message") 

'CRIA A INSTANCIA DO OBJETO PARA CONFIGURAÇÃO DO SMTP 
Set objCDOSYSCon = Server.CreateObject ("CDO.Configuration") 

'SERVIDOR DE SMTP 
objCDOSYSCon.Fields("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "smtp.seudominio" 

'PORTA PARA COMUNICAÇÃO COM O SERVIÇO DE SMTP 
objCDOSYSCon.Fields("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 587

'Utilização de SSl 
objCDOSYSCon.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpusessl") = True

'ATIVAR RECURSO DE SMTP AUTENTICADO 
objCDOSYSCon.Fields("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = 1 

'USU?RIO PARA SMTP AUTENTICADO 
objCDOSYSCon.Fields("http://schemas.microsoft.com/cdo/configuration/sendusername") = "usuario@dominio.com" 

'SENHA DO USUÁRIO PARA SMTP AUTENTICADO 
objCDOSYSCon.Fields("http://schemas.microsoft.com/cdo/configuration/sendpassword") = "senha" 

'TEMPO DE TIMEOUT (EM SEGUNDOS) 
objCDOSYSCon.Fields("http://schemas.microsoft.com/cdo/configuration/smtpconnectiontimeout") = 60 

'ATUALIZA A CONFIGURAÇÃO DO CDOSYS PARA ENVIO DO E-MAIL 
objCDOSYSCon.Fields.update 
Set objCDOSYSMail.Configuration = objCDOSYSCon 

'NOME DO REMETENTE, E-MAIL DO REMETENTE 
objCDOSYSMail.From = "Remetente <usuário@dominio.com>" 

'NOME DO DESINATARIO, E-MAIL DO DESINATÁRIO 
objCDOSYSMail.To = "NOME <destino@dominio.com>"
'objCDOSYSMail.cc = "Copia <copia@dominio.com>" 
'objCDOSYSMail.bcc = "Copia Oculta <copiaoculta@dominio.com>" 


'ASSUNTO DA MENSAGEM 
objCDOSYSMail.Subject = " Envio autenticado - CDOSYS Apps" 

'CONTEÚDO DA MENSAGEM 
objCDOSYSMail.TextBody = "Teste do componente CDOSYS - Texto sem HTML" 
'PARA ENVIO DA MENSAGEM NO FORMATO HTML, ALTERE O TextBody PARA HtmlBody 

'objCDOSYSMail.HtmlBody = "<html> <head><meta http-equiv=""Content-Type"" content=""text/html;charset=utf-8""></head><body></body></html>" 

'ENVIA A MENSAGEM 
objCDOSYSMail.Send 

'DESTR?I OS OBJETOS 
Set objCDOSYSMail = Nothing 
Set objCDOSYSCon = Nothing 

response.write "Email enviado com sucesso" 

'Response.Redirect "Enviado.asp" 
%>

 

[/code]

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.