Ir para conteúdo

POWERED BY:

Arquivado

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

Rocha123

microsoft vbscript runtime error '800a01c2'

Recommended Posts

Boa tarde

 

Tenho uma função que é utilizada para enviar e-mail usando o CDOSYS, porém já faz um tempo que ela não funciona mais, quando executo o fonte apareceo erro acima.. Podem me ajudar

 

O ERRO ACONTE NA ÚLTIMA LINHA Call SendMail, PORÉM NÃO CONSIGO SABER O QUE ESTÁ ACONTECENDO EXATAMENTE.

 

Segue trecho do fonte:

Function SendMail(MFrom, MTo, MSubject, MBody, MTitle)

 

ON ERROR RESUME NEXT

Dim iMsg 
Dim iConf 

set iMsg = CreateObject("CDO.Message")
set iConf = CreateObject("CDO.Configuration")

With iConf
.Fields("http://schemas.Microsoft.com/cdo/configuration/smtpserver") = "smtp.xxxxxxx.com.br"
.Fields("http://schemas.Microsoft.com/cdo/configura.../smtpserverport") = 25
.Fields("http://schemas.Microsoft.com/cdo/configuration/sendusing") = 2
.Fields("http://schemas.Microsoft.com/cdo/configura...nnectiontimeout") = 30
.Fields("http://schemas.Microsoft.com/cdo/configura...mtpauthenticate") = 1 
.Fields("http://schemas.Microsoft.com/cdo/configuration/sendusername") = "xxxx@xxxx.com.br" 
.Fields("http://schemas.Microsoft.com/cdo/configuration/sendpassword") = "xxxx" 
.Fields.Update
End With

Set iMsg.Configuration = iConf

With iMsg
.To = MTo
.From = MFrom
.Subject = MTitle
.HTMLBody = MBody
.Send
End With

Set iMsg = Nothing
Set iConf = Nothing

IF (err <> 0) Then
SendMail = err.number
Else
SendMail = 1
End IF
End Function


Function EnvMail(op)

dim mail, corpo, htmltext, txt

if (op = 1) then
txt = "Houve um usuário que excedeu o númerode tentativas ao tentar logar no<br>"
else
txt = "Houve um usuário que burlou a instrução SQL."
end if

corpo = "<html><head><title>Untitled Document</title><meta http-equiv=""Content-Type"" content=""text/html; charset=iso-8859-1""><style type=""text/css""><!--body {margin-left: 0px;margin-top: 0px;margin-right: 0px;margin-bottom: 0px;background-color: #FFFFFF;}body,td,th {color: #000000;}.style1 {font-family: Arial, Helvetica, sans-serif;font-size: 12px;color: #FFFFFF;font-weight: bold;}.style2 {font-family: Arial, Helvetica, sans-serif;font-size: 12px;font-weight: bold;}.style6 {font-family: Arial, Helvetica, sans-serif; font-size: 12px; }--></style></head><body><table width=""500"" border=""0"" align=""center"" cellpadding=""2"" cellspacing=""2""><tr align=""center"" bgcolor=""#36374E""><td colspan=""2""><span class=""style1"">Alerta de Invasão - Portal </span></td></tr><tr align=""center""><td height=""50"" colspan=""2""><span class=""style2"">"& txt &"</span></td></tr><tr><td width=""104"" align=""right"" class=""style2"">Web Site : </td><td width=""382""><span class=""style6"">"& Request.ServerVariables("LOCAL_ADDR") &"</span></td></tr><tr><td align=""right"" class=""style2"">Data : </td><td><span class=""style6"">"& Now() &"</span></td></tr><tr><td align=""right"" class=""style2"">IP do Cliente : </td><td><span class=""style6"">"& Request.ServerVariables("REMOTE_ADDR") &"</span></td></tr><tr><td align=""right"" class=""style2"">Login : </td><td><span class=""style6"">"& Server.HTMLEncode(login) &"</span></td></tr><tr><td align=""right"" class=""style2"">Senha : </td><td><span class=""style6"">"& Server.HTMLEncode(senha) &"</span></td></tr></table></body></html>"

Call SendMail("xxx@xxxx.com.br", "xxxx@xxxx.com.br", "Alerta de invasão - Portal", htmlText, "Alerta de invasão - Portal")
End Function

Compartilhar este post


Link para o post
Compartilhar em outros sites

retire o ON ERROR e certifique-se que o email é válido

Compartilhar este post


Link para o post
Compartilhar em outros sites

No código que você postou não tem as assinatua da função SendMail.

Poste a assintaura: function SendMail(...............................) ou confira se o número de parâmetros passados é igual ao recebidos pela função.

Compartilhar este post


Link para o post
Compartilhar em outros sites

O inicio da função ficou de fora, porém segue novamente.

 

Function SendMail (MFrom, mto, MSubject, mBody, MTitle)

 

 

'ON ERROR RESUME NEXT.....

Compartilhar este post


Link para o post
Compartilhar em outros sites

ele gera algum numero de erro ????

Compartilhar este post


Link para o post
Compartilhar em outros sites

Microsoft VBScript runtime error '800a01c2'

 

Wrong number of arguments or invalid property assignment: 'SendMail'

 

/admin/check.asp, line 63

A linha 63 no fonte completo aponta para

 

Call SendMail("xxx@xxxx.com.br", "xxxx@xxxx.com.br", "alerta de invasão - Portal", htmlText, "alerta de invasão - Portal")

Compartilhar este post


Link para o post
Compartilhar em outros sites

Se você estiver usando function não precisa do call.

 

Seria:

erro = SendMail("xxx@xxxx.com.br", "xxxx@xxxx.com.br", "alerta de invasão - Portal", htmlText, "alerta de invasão - Portal")
If erro then
............
 else
.............
end if

Ou:

SendMai "xxx@xxxx.com.br", "xxxx@xxxx.com.br", "alerta de invasão - Portal", htmlText, "alerta de invasão - Portal"

Claro a function retornaria true ou false para controle de erro.

 

Ser for usar call transforme a function em sub:

Sub SendMail (MFrom, mto, MSubject, mBody, MTitle)
...
..
..
End Sub
..
..
..
call SendMail("xxx@xxxx.com.br", "xxxx@xxxx.com.br", "alerta de invasão - Portal", htmlText, "alerta de invasão - Portal") 

Acho que é isto. Teste ai por favor.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara ainda assim continua dando o mesmo erro.. segue fonte alterado:

Sub SendMail(MFrom,MTo,MSubject,MBody,MTitle)

    'ON ERROR RESUME NEXT

    Dim iMsg 
    Dim iConf 

    set iMsg = CreateObject("CDO.Message")
    set iConf = CreateObject("CDO.Configuration")

    With iConf
      .Fields("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "smtp.xxxxxxxxxx.com.br"
      .Fields("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25
      .Fields("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
      .Fields("http://schemas.microsoft.com/cdo/configuration/smtpconnectiontimeout") = 30
      .Fields("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = 1 
      .Fields.Update
    End With

    Set iMsg.Configuration = iConf

    With iMsg
      .To       = MTo
      .From     = MFrom
      .Subject  = MTitle
      .HTMLBody = MBody
      .Send
    End With

    Set iMsg = Nothing
    Set iConf = Nothing

    IF (err <> 0) Then
      SendMail = err.number
    Else
      SendMail = 1
    End IF
  End Sub

  
  Function EnvMail(op)
  
    dim mail, corpo, htmltext, txt
  
    if (op = 1) then
      txt = "Houve um usuário que excedeu o númerode tentativas ao tentar logar no<br>Portal."
    else
      txt = "Houve um usuário que burlou a instrução SQL."
    end if
  
    corpo = "<html><head><title>Untitled Document</title><meta http-equiv=""Content-Type"" content=""text/html; charset=iso-8859-1""><style type=""text/css""><!--body {margin-left: 0px;margin-top: 0px;margin-right: 0px;margin-bottom: 0px;background-color: #FFFFFF;}body,td,th {color: #000000;}.style1 {font-family: Arial, Helvetica, sans-serif;font-size: 12px;color: #FFFFFF;font-weight: bold;}.style2 {font-family: Arial, Helvetica, sans-serif;font-size: 12px;font-weight: bold;}.style6 {font-family: Arial, Helvetica, sans-serif; font-size: 12px; }--></style></head><body><table width=""500""  border=""0"" align=""center"" cellpadding=""2"" cellspacing=""2""><tr align=""center"" bgcolor=""#36374E""><td colspan=""2""><span class=""style1"">Alerta de Invasão</span></td></tr><tr align=""center""><td height=""50"" colspan=""2""><span class=""style2"">"& txt &"</span></td></tr><tr><td width=""104"" align=""right"" class=""style2"">Web Site : </td><td width=""382""><span class=""style6"">"& Request.ServerVariables("LOCAL_ADDR") &"</span></td></tr><tr><td align=""right"" class=""style2"">Data : </td><td><span class=""style6"">"& Now() &"</span></td></tr><tr><td align=""right"" class=""style2"">IP do Cliente : </td><td><span class=""style6"">"& Request.ServerVariables("REMOTE_ADDR") &"</span></td></tr><tr><td align=""right"" class=""style2"">Login : </td><td><span class=""style6"">"& Server.HTMLEncode(login) &"</span></td></tr><tr><td align=""right"" class=""style2"">Senha : </td><td><span class=""style6"">"& Server.HTMLEncode(senha) &"</span></td></tr></table></body></html>"
  
    Call SendMail("xxxxxxx@xxxxxxxxxxxx.com.br", "xxxxxxxxxxx@xxxxxxxxxxxxx.com.br", "Alerta de invasão", htmlText, "Alerta de invasão")
  End Function

Call SendMail (xxxxxxx@xxxxxxxxxxxx.com.br "," xxxxxxxxxxx@xxxxxxxxxxxxx.com.br ","Alerta de invasão", htmlText, "alerta de invasão")

Compartilhar este post


Link para o post
Compartilhar em outros sites

Muito estranho.

 

A única coisa que notei é que você passa htmlText mas gera o contéudo em corpo.

 

Não sei se isto esta afetando alguam coisa.

 

Só como sugestão faça um teste em partes:

 

Crie assim: Sub SendMail(MFrom)

E chame: Call SendMail (xxxxxxx@xxxxxxxxxxxx.com.br ")

 

E dê um response.write no parâmetro passado e response.end para ver o conteúdo

 

E veja se roda depois vá acrescetando os outro parâmtros.

 

Pode ser que o erro esta sendo mascardo. E esteja acontecendo dentro do corpo da sua SUB SendMail.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara já tentei de tudo e nada.. o negócio simplesmente não quer funcionar..

 

O que será que pode estar acontecendo, pois este fonte esta hospedado na locaweb e funcionava normalmente... hoje eu estou usando uol host..

 

Por favor me ajudem...

 

Obrigado

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara já tentei de tudo e nada.. o negócio simplesmente não quer funcionar..

 

O que será que pode estar acontecendo, pois este fonte esta hospedado na locaweb e funcionava normalmente... hoje eu estou usando uol host..

 

Por favor me ajudem...

 

Obrigado

 

você fez o teste que sugeri? Colocar somente um parâmetro e testar se passa?

 

Uma coisa que notei é que no post do dia 09 15:23 sua chamada esta assim

 

Cara o post do dia 09 o call esta assim:

Call SendMail (xxxxxxx@xxxxxxxxxxxx.com.br "," xxxxxxxxxxx@xxxxxxxxxxxxx.com.br ","alerta de invasão", htmlText, "alerta de invasão")
Esta faltando a aspa no primeiro parâmetro. Deveria ser assim:

Cara o post do dia 09 o call esta assim:
[code]Call SendMail ("xxxxxxx@xxxxxxxxxxxx.com.br "," xxxxxxxxxxx@xxxxxxxxxxxxx.com.br ","alerta de invasão", htmlText, "alerta de invasão")[/code]

Dê uma conferida! Pode ter sido erro na hora de copiar o código para o post.

 

Agora sugiro ir depurando por partes... coloquei um parâmetro e depois vá acrescentando outros.

E coloque um reponse.write para ver o conteúdo da variável.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Reelamente foi um erro na hora de copiar para o post.. no fonte esta tudo com aspas.. de forma correta..

 

Vou tentar debugar o fonte novamente..

 

o que poderia estar acontecendo, esse erro nunca ocorreu e agora simplesmente acusa um erro sem sentido..

Compartilhar este post


Link para o post
Compartilhar em outros sites

Sinceramente ja vi este erro qdo o numero de parametros passado difere do numero esperado pela assinatura da função sub.

 

Como sugeri passei um parâmetro dê o response e vá acrescentando o restante têm de ter paciência mesmo.

 

Fiz o teste com este código:


<%
Sub SendMail(MFrom,MTo,MSubject,MBody,MTitle)

	'ON ERROR RESUME NEXT

	response.write mfrom & "-----<br>"
	response.end
	
	Dim iMsg 
	Dim iConf 

	set iMsg = CreateObject("CDO.Message")
	set iConf = CreateObject("CDO.Configuration")

	With iConf
 	.Fields("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "smtp.xxxxxxxxxx.com.br"
 	.Fields("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25
 	.Fields("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
 	.Fields("http://schemas.microsoft.com/cdo/configuration/smtpconnectiontimeout") = 30
 	.Fields("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = 1 
 	.Fields.Update
	End With

	Set iMsg.Configuration = iConf

	With iMsg
 	.To 	= MTo
 	.From 	= MFrom
 	.Subject = MTitle
 	.HTMLBody = MBody
 	.Send
	End With

	Set iMsg = Nothing
	Set iConf = Nothing

	IF (err <> 0) Then
 	SendMail = err.number
	Else
 	SendMail = 1
	End IF
 End Sub
 
 Call SendMail("xxxxxxx@xxxxxxxxxxxx.com.br", "xxxxxxxxxxx@xxxxxxxxxxxxx.com.br", "alerta de invasão", htmlText, "alerta de invasão")
 %>

Funciou sem erros.

 

Tenta colocar um response.write e reponse.end depois de End With e em outras partes do código.

Pois como já tinha alertado antes pode ser que o erro esta sendo mascarado.

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.