Ir para conteúdo

Arquivado

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

FabianoSouza

Erro com CDONTS no host

Recommended Posts

<%@LANGUAGE="VBSCRIPT" CODEPAGE="65001"%>
<%
set mail = server.createobject("cdonts.newmail")
mail.from = "suporte@meudominio.com.br" 'Este email deve ser válido e existir como conta de email para o domínio
mail.to = "suporte@meudominio.com.br"
mail.subject = "Assunto do email"
mail.body = "Este é um email teste"
mail.bodyformat = 1
mail.mailformat = 1
on error resume next
mail.send
if err <> 0 then
	response.write "Erro ao enviar email: " & err.description
end if
	response.write "Email enviado com sucesso!"
%>

Ao rodar esse código no host retorna o erro

"Permission denied"

 

Mas permissão aonde???? Onde tenho que dar essa permissão?? E alguma pasta? Qual?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Opa, agora a coisa mudou de figura. COnsegui um código que roda direitinho no host.

<%
' Cria os objetos para envio de e-mail
Set message = Server.CreateObject("CDO.Message")<strong></strong>
Set conf = Server.CreateObject("CDO.Configuration")
Set param = conf.Fields

'porta do SMTP
param("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 465
param("http://schemas.microsoft.com/cdo/configuration/sendusing")  = 2
param("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "localhost"
param.Update

'Obtendo valores digitados no formulário e armazená-los nas variáveis locais
'strFrom = Request.Form("email")
'strTo = Request.Form("para")
'strSubject = Request.Form("assunto")
'strBody = Request.Form("mensagem")

strFrom = "suporte@meudominio.com.br"
strTo = "meuemail@outlook.com"
strSubject = "assunto teste"
strBody = "mensagem teste de DEV"


'Retira caracteres inválidos que possam ser inclusos por acesso não autorizado
'para envio de Spam
aux1 = chr(13)
aux2 = chr(10)
regex= "\\n|\\r|cc\:|bcc\:|"& aux1 &"|"& aux2
Set objRegExp = New RegExp
objRegExp.Pattern = regex
objRegExp.IgnoreCase = True
objRegExp.Global = True

strFrom = objRegExp.Replace(strFrom,"")
strTo = objRegExp.Replace(strTo,"")
strSubject = objRegExp.Replace(strSubject,"")

Set message.configuration = conf
'Atribui-se os valores para as propriedades do objeto
 message.From = strFrom
 message.To = strTo
 message.Subject  = StrSubject
 message.textBody = StrBody

' Outras propriedades que podem ser usadas, mas que deixaremos comentadas neste exemplo:
' - Você pode enviar e-mail HTML, arquivos anexados, etc;
' - Você pode mudar muitos aspectos da mensagem;
'message.HTMLBody = StrBody
'message.Cc = "conta1@dominio.com.br;conta2@dominio.com.br"  'Com Cópia
'message.Bcc = "conta3@dominio.com.br;conta4@dominio.com.br" 'Com Cópia Oculta
'message.Fields("urn:schemas:httpmail:importance").Value = 2 '(0=Baixa, 1=Normal, 2=Alta)
'message.AddAttachment "c:pathfilename.txt", "filename.txt"

' Envia a mensagem!
message.send

'Atribui nothing ao objeto para que ele se torna inválido imediatamente após o envio
'Não podendo ser utilizado dois "sends" para o mesmo objeto New Mail
Set message = nothing

Msg = "Mensagem enviada com sucesso!"

Response.Write "<html><body><table align=center><tr><td> </td></tr>"
Response.Write "<tr><td> </td></tr>"
Response.Write "<tr><td><font face=Verdana><b>"& Msg &"</b></font></td></tr>"
Response.Write "</body></html>"
%>

Mas não roda localmente. Ocorre este erro.

 

CDO.Message.1 erro '80040213'

Falha na conexão do transporte com o servidor.

 

Um help pelo amor de Deus!

 

Já baixei a tal dll cdonts.dll. Mas não consegui registrar porque diz que não é compatível com 64 bits.

 

Existe essa DLL para Win7 64bits? Será que é esse o problema?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ola Fabio, blza!

O Cdonts foi descontinuado e substituído pelo Cdosys, e por isso fica melhor VC usar este mesmo

 

http://wiki.locaweb.com/pt-br/CDONTS

 

Veja o exemplo de uso

 

http://wiki.locaweb.com/pt-br/CDOSYS

 

 

Quanto a DLL se VC não Registrar ela corretamente, não ira funcionar mesmo.

 

 

Espero ter ajudado

 

Vlw

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cada comportamento estranho...

Bom, o comportamento agora é: funciona no host e não funciona localmente. Acusa o mesmo erro que dava com o CDONTS.

 

Falha na conexão do transporte com o servidor.

/Suporte/backend/recupera-senha.asp, linha 72

 

 

Essa é alinha 72

 

objCDOSYSMail.Send

Compartilhar este post


Link para o post
Compartilhar em outros sites

Dica.

 

Recomendo fazer no mesmo código pelo menos entre 2 ou 3 scripts de e-mails diferentes os ativando com um ( IF ), assim você pode intercambiar entre eles de acordo com o componente instalado no servidor!

' Tipo de Componente
'componente = "aspmail"
'componente = "cdont"
componente = "Cdosys"

Assim o que você for utilizar um deles, você remove a aspas simples e deixa ele ativo.

 

Isso serve para que você possa intercambiar seu script de e-mail conforme o componente tiver instalado em seu servidor!

 

Abraços!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Então Fabiano, se não funciona apenas em seu localhost, a grande probalidade de sua DLL não ter sido registrada corretamente.

 

Certifique-se de que sua DLL de fato esteja registrada.

 

Vlw

Compartilhar este post


Link para o post
Compartilhar em outros sites

Dica.

 

Recomendo fazer no mesmo código pelo menos entre 2 ou 3 scripts de e-mails diferentes os ativando com um ( IF ), assim você pode intercambiar entre eles de acordo com o componente instalado no servidor!

' Tipo de Componente
'componente = "aspmail"
'componente = "cdont"
componente = "Cdosys"

Assim o que você for utilizar um deles, você remove a aspas simples e deixa ele ativo.

 

Isso serve para que você possa intercambiar seu script de e-mail conforme o componente tiver instalado em seu servidor!

 

Abraços!

Olá Fábio. Boa dica.

Valew!

Então Fabiano, se não funciona apenas em seu localhost, a grande probalidade de sua DLL não ter sido registrada corretamente.

 

Certifique-se de que sua DLL de fato esteja registrada.

 

Vlw

 

Wilnet, pelo que entendi o código acima é para enviar email usando a DLL CDOSYS (que é mais moderno), certo?

Essa DLL está registrada (exibe msg de confirmação quando executo regsvr32 cdosys.dll).

Então deveria funcionar.

 

cdosys.jpg

 

Por "desencargo de consciência" tb quero registrar a dll CDONTS.

Mas quando tento registrar aparece a seguinte mensagem

 

cdonts.jpg

 

Então pergunto.

Existem versões (x86 e 64) específicas dessa DLL? Pois mensagem leva a entender isso.

To usando a DLL baixada aqui http://kb.sp.parallels.com/en/560 (link no final da página)

 

 

Meu sistema é o Windows 7 Ultimate com todos as atualizações e service pack.

Compartilhar este post


Link para o post
Compartilhar em outros sites

verifique se o seu servidor SMTP é válido, se esta correto e que não esteja passando por nenhuma instabilidade

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.