Ir para conteúdo
Fórum Script Brasil
  • 0

(Resolvido) Script AspMailer


Roseane

Pergunta

Por favor, criei um script em ASP para enviar os dados de um formulário por email, porém, quando clico em ENVIAR aparece esse erro de destinatário inválido: 554 5.5.1 Error: no valid recipients :blink:

Segue o script abaixo:

Será q alguém poderia me ajudar, por favor?

<%
Set Mailer = Server.CreateObject("SMTPsvg.Mailer")
Mailer.FromName = request.form("nome")
Mailer.FromAddress = request.form("email")
Mailer.RemoteHost = "smtp.dominio.com.br"
Mailer.AddRecipient "contato","contato@dominio.com.br"
Mailer.ContentType = "text/html"
Mailer.Subject = "Contato pelo site"

Mailer.BodyText = "Nome........... " & request.form("nome") & vbcrlf
Mailer.BodyText = "E-mail......... " & request.form("email") & vbcrlf
Mailer.BodyText = "Cidade......... " & request.form("cidade") & vbcrlf 
Mailer.BodyText = "Estado......... " & request.form("estado") & vbcrlf
Mailer.BodyText = "Telefone......... " & request.form("telefone") & vbcrlf
Mailer.BodyText = "Assunto......... " & request.form("assunto") & vbcrlf
Mailer.BodyText = "Mensagem........ " & request.form("mensagem") & vbcrlf

if Mailer.SendMail then
Response.redirect "obrigado.html"
else
Response.Write mailer.response
end if
%>

Obrigada

Editado por Rafael Spilki
Tags Code!
Link para o comentário
Compartilhar em outros sites

14 respostass a esta questão

Posts Recomendados

  • 0

Bom dia Roseane!

Não sei o que está errado com o script que você postou, mas se quiser pode substituí-lo por este que funciona.

<%
nome = request.Form("nome")
email = request.form("email")
fone = request.Form("telefone")
mensagem = request.Form("comentario")
mensagem = replace(mensagem, "<br>", chr(13))

    'cria o objeto para o envio de e-mail'
    Set objCDOSYSMail = Server.CreateObject("CDO.Message")

    'cria o objeto para configuração do SMTP'
    Set objCDOSYSCon = Server.CreateObject ("CDO.Configuration")

    'SMTP'
    objCDOSYSCon.Fields("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "LOCALHOST"'"mail.meusite.com.br"

    'porta do SMTP
    objCDOSYSCon.Fields("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25

    'porta do CDO'
    objCDOSYSCon.Fields("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2

    'timeout'
    objCDOSYSCon.Fields("http://schemas.microsoft.com/cdo/configuration/smtpconnectiontimeout") = 30

    objCDOSYSCon.Fields.update

    'atualiza a configuração do CDOSYS para o envio do e-mail'
    Set objCDOSYSMail.Configuration = objCDOSYSCon

    'e-mail do remetente'
    objCDOSYSMail.From = email 'e-mail preenchido no form

    'e-mail do destinatário'
    objCDOSYSMail.To = "destinatario@provedor.com.br"

    'assunto da mensagem
    objCDOSYSMail.Subject = "Assunto do email"

    'conteúdo da mensagem'
    objCDOSYSMail.TextBody = mensagem
    'objCDOSYSMail.fields.update '
    'envia o e-mail'
    objCDOSYSMail.Send

    'destrói os objetos'
    Set objCDOSYSMail = Nothing
    Set objCDOSYSCon = Nothing

    end if
%>

Link para o comentário
Compartilhar em outros sites

  • 0

Boa tarde.

você está tentando mandar pra qual endereço?

Mailer.AddRecipient "contato","contato@dominio.com.br"

aqui deve estar o erro... contato está sendo passado como string por causa das aspas dupla... o que significa que vai como texto... e a palavra "contato" não é endereço de e-mail...

Depois tb não adianta ficar testando scripts... o que lhe indicaram é cdo.sys, o seu aspmail, tem que ver qual o componente você tem disponível pra depois começar a programar! Cheque com o server!

[]'s Rafael Spilki

Link para o comentário
Compartilhar em outros sites

  • 0

É, não deu certo mesmo o script que ele passou.

Então, como eu devo colocar? O email para qual qro q o formulário seja enviado é 'contato@dominio.com.br'.

O servidor comporta ASPMAIL porém a unica "exigencia" é qo FROM seje um email do domínio. já corrigi isso, ms ainda assim n funciona o MAILER.ADDRECIPIENT

Obrigada pela atenção!!!

Editado por Roseane
Link para o comentário
Compartilhar em outros sites

  • 0

Jr_Designer, o script q você mandou usa um componente chamado CDO.SYS, se o servidor dela não o suporta fica impossível ele funcionar!

Roseane, eu tentaria essa linha de três formas:

Mailer.AddRecipient "contato@dominio.com.br"

ou

Mailer.AddRecipient contato@dominio.com.br

Agora, note que exitem dois componentes de nome parecido: aspmail e aspEmail... o seu script é de aspmail... tem certeza que é este que o server disponibiliza?

[]'s Rafael Spilki

Link para o comentário
Compartilhar em outros sites

  • 0

Obrigada pessoal. Desisti desse script e fiz um outro, tb porque o cliente pediu para os campos NOME E EMAIL serem obrigatorios.. FUNCIONOUUU!! lol ..rsrs

Porém, na hr que recebo o email ele vem assim:

nome=roseaneemail=roseane.designer@terra.com.brcidade=SãoPaulo

estado=SPtelefone=xx-xxxx-xxxxassunto=Testemensagem=Teste

Tá td colaaaaaaado.. =/

Como eu faço pra vir arrumadinho, assim:

Nome:Roseane

Email: email@servidor.com.br

Cidade: Sampa Estado: SP

Telefone:xx-xxxx-xxxx

Assunto: Teste

Mensagem: Teste

Segue o código abaixo:

<%@language = "VBscript"%>

<%

Dim strError

Response.Buffer = True

If ScriptEngineMajorVersion < 2 Then

ReportError "Host system needs scripting engine upgrade to use this script"

End If

Set objFM = CreateObject("Scripting.Dictionary")

If IsObject(objFM) = False Then

ReportError "Host system lacks component(s) required by this script"

End If

Set objMailx = CreateObject("CDONTS.Newmail")

If IsObject(objMailx) = False Then

ReportError "Host system lacks component(s) required by this script"

End If

Set objMailx = Nothing

%>

<%variaveis%>

<%

strRcpt = "email@dominio.com.br" 'Endereço que vai receber o formulario

strFromVar = "email" 'Email de resposta

strDefFrom = "email@dominio.com.br" 'Email padrão

strDefSubject = "Contato pelo site " 'Assunto do email

strRedirect = "obrigado.html" 'Página de agradecimeno

%>

<%'variables you can set end here%>

<%

ParseForm

CheckForm

If Len(strError) > 0 Then

ReportError strError

End If

strOutX = SeqForm

If Len(strOutX) < 1 Then

strOutX = FormToString

End If

If Len(strOutX) < 1 Then

ReportError "Submitted form is empty"

End If

strSubject = strDefSubject

If objFM.Exists("TGsubject") Then

strSubject = objFM.Item("TGsubject")

End If

strFrom = strDefFrom

If Len(strFromVar) > 0 Then

If objFM.Exists(strFromVar) Then strFrom = objFM.Item(strFromVar) End If

End If

SendMail strFrom,strRcpt,strSubject,strOutX

If Len(strRedirect) > 0 Then

Response.redirect(strRedirect)

Response.End

End If

If objFM.Exists("TGredirect") = True Then

If Len(objFM.Item("TGredirect")) > 0 Then

Response.redirect(objFM.Item("TGredirect"))

Response.End

End If

End If

%>

<%

Credit

Response.End

%>

<%

Function IsValidEmail(Email)

Dim Temp,Temp2

strNotValid = "<br>Endereço de email inválido"

strTooLong = "<br>Endereço de email muito extenso"

If Len(Email) > 100 Then

ReportError strTooLong

End If

Email = LCase(Email)

Temp = Split(Email,"@",2,1)

If UBound(Temp) < 1 Then

ReportError strNotValid

End If

Temp2 = Split(Temp(1),".",-1,1)

If UBound(Temp2) < 1 Then

ReportError strNotValid

End If

End Function

%>

<%

Function SendMail(From,Rcpt,Subject,Body)

Trim(From)

Trim(Rcpt)

If Len(From) < 1 Then

ReportError strError & "<br>Não responder esse email"

End If

If Len(Rcpt) < 1 Then

ReportError strError & "<br>Sem destinatário para o email"

End If

IsValidEmail Rcpt

IsValidEmail From

Set objMailer = CreateObject("CDONTS.Newmail")

objMailer.From = From

objMailer.To = Rcpt

objMailer.Subject = Subject

objMailer.Body = Body

objMailer.Send

Set objMailer = Nothing

End Function

%>

<%

Function CheckForm()

Dim Temp,strTmp,strForce

strInputReq = "<br>É necessário o preenchimento do "

If objFM.Exists("TGrequire") = False Then

Exit Function

ElseIf isEmpty(objFM.Item("TGrequire")) Then

Exit Function

End If

strForce = objFM.Item("TGrequire")

Temp = Split(strForce,",",-1,1)

For Each strTmp in Temp

If objFM.Exists(strTmp) = False Then

strError = strError & strInputReq & strTmp

ElseIf Len(objFM.Item(strTmp)) < 1 Then

strError = strError & strInputReq & strTmp

End If

Next

End Function

%>

<%

Function ParseForm()

For Each Item in Request.Form

If objFM.Exists(Item) Then

objFM.Item(Item) = objFM.Item(Item) & "," & Request.QueryString(Item)

Else

objFM.Add Item,Request.Form(Item)

End If

Next

For Each Item in Request.QueryString

If objFM.Exists(Item) Then

objFM.Item(Item) = objFM.Item(Item) & "," & Request.QueryString(Item)

Else

objFM.Add Item,Request.QueryString(Item)

End If

Next

End Function

%>

<%

Function SeqForm()

Dim Temp,strTmp,strOrder,strOut

If objFM.Exists("TGorder") = False Then

Exit Function

ElseIf isEmpty(objFM.Item("TGorder")) Then

Exit Function

End If

strOrder = objFM.Item("TGorder")

Temp = Split(strOrder,",",-1,1)

For Each strTmp in Temp

If objFM.Exists(strTmp) Then

strOut = strOut & strTmp & "=" & objFM.Item(strTmp) & Chr(10)

End If

Next

SeqForm = strOut

End Function

%>

<%

Function FormToString()

Dim strOut

strKeys = objFM.Keys

strValues = objFM.Items

For intCnt = 0 To objFM.Count -1

strOut = strOut & strKeys(intCnt) & "=" & strValues(intCnt) & Chr(10)

Next

FormToString = strOut

End Function

%>

<%

Function ReportError(strMess)

If Len(strMess) < 1 Then

strMess = strError

End If

strErr = "Ocorreram os seguintes erros<br>" & strMess

Response.Clear

%>

<h1>Ocorreu um erro!</h1>

<%'Mesangem de erro%>

<%

Response.Write(strErr)

%>

<p>

<b>Clique em <i><a href="index.html">Voltar</a></i> e corrija as entradas</b>

</p>

<%

Credit

Response.End

End Function

%>

<%Function Credit%>

<p align=center>

<font face="Arial,Helvetica" size=1>

Assinatura

</p>

<%End Function%>

E assim está no form:

<form action="aspmailer.asp" method="POST">

<!--TGrequire: Campos obrigatorios-->

<input type="hidden" name="TGrequire" value="nome,email">

<!--TGorder: Ordem das informacoes-->

<input type="hidden" name="TGorder" value="nome,email,telefone,cidade,estado,assunto,mensagem,">

<!--TGsubject: Assunto do email-->

<input type="hidden" name="TGsubject" value="Contato pelo site">

<!--TGredirect: URL de agradecimento-->

<input type="hidden" name="TGredirect" value="obrigado.html">

Bom é isso aí! To enchendo o saco de vocês, né?? =D

Brigadão mesmo, é q eu n desisto nunca, por isso vou ficar cutucando até dar certo..rsrsrs

Editado por Roseane
Link para o comentário
Compartilhar em outros sites

  • 0

É aí que tá o problema. Desculpe a ignorância, ms onde exatamente eu posso substituir a variavel TGorder. q é o que compõe o corpo da mensagem? porque eu tentei em todos do script e deu erro...=/ Essa variável é opcional, ms se eu a retiro, como o script depende dela, n funciona, dai n sei exatamente onde posso fazerr a substituição...

Esse é o trecho da função de envio de email

<%
Function SendMail(From,Rcpt,Subject,Body)
Trim(From)
Trim(Rcpt)
If Len(From) < 1 Then 
ReportError strError & "<br>Não responder esse email"
End If
If Len(Rcpt) < 1 Then
ReportError strError & "<br>Sem destinatário para o email"
End If
IsValidEmail Rcpt
IsValidEmail From
Set objMailer = CreateObject("CDONTS.Newmail")
objMailer.From = From
objMailer.To = Rcpt
objMailer.Subject = Subject
objMailer.Body = Body
objMailer.Send
Set objMailer = Nothing
End Function
%>
Esse outro pedaço que contém a função com a variavel TGorder
<%
Function SeqForm()
Dim Temp,strTmp,strOrder,strOut
If objFM.Exists("TGorder") = False Then
Exit Function
ElseIf isEmpty(objFM.Item("TGorder")) Then
Exit Function
End If
strOrder = objFM.Item("TGorder")
Temp = Split(strOrder,",",-1,1)
For Each strTmp in Temp
If objFM.Exists(strTmp) Then
strOut = strOut & strTmp & "=" & objFM.Item(strTmp) & Chr(10)
End If 
Next
SeqForm = strOut
End Function
%>
E no form essa mesma TGorder fica assim
<!--TGorder: Ordem das informacoes-->
<input type="hidden" name="TGorder" value="nome,email,telefone,cidade,estado,assunto,mensagem,">

Editado por Roseane
Link para o comentário
Compartilhar em outros sites

  • 0

Fiz assim e agora só recebo o campo mensagem.. lol... lesada pá ca...rsrsrs

<%
Function SendMail(From,Rcpt,Subject,Body)
Trim(From)
Trim(Rcpt)
If Len(From) < 1 Then  
ReportError strError & "<br>Não responder esse email"
End If
If Len(Rcpt) < 1 Then
ReportError strError & "<br>Sem destinatário para o email"
End If
IsValidEmail Rcpt
IsValidEmail From
Set objMailer = CreateObject("CDONTS.Newmail")
objMailer.From = From
objMailer.To = Rcpt
objMailer.Subject = Subject
objMailer.Body = "Nome....... " & request.form("nome") & vbcrlf
objMailer.Body = "E-mail..... " & request.form("email") & vbcrlf
objMailer.Body = "Cidade..... " & request.form("cidade") & vbcrlf 
objMailer.Body = "Estado..... " & request.form("estado") & vbcrlf
objMailer.Body = "Telefone... " & request.form("telefone") & vbcrlf
objMailer.Body = "Assunto.... " & request.form("assunto") & vbcrlf
objMailer.Body = "Mensagem... " & request.form("mensagem") & vbcrlf
objMailer.Send
Set objMailer = Nothing
End Function
%>

Link para o comentário
Compartilhar em outros sites

  • 0
objMailer.Body = "Nome....... " & request.form("nome") & vbcrlf

objMailer.Body = "E-mail..... " & request.form("email") & vbcrlf

objMailer.Body = "Cidade..... " & request.form("cidade") & vbcrlf

objMailer.Body = "Estado..... " & request.form("estado") & vbcrlf

objMailer.Body = "Telefone... " & request.form("telefone") & vbcrlf

objMailer.Body = "Assunto.... " & request.form("assunto") & vbcrlf

objMailer.Body = "Mensagem... " & request.form("mensagem") & vbcrlf

Tente assim:

objMailer.Body = "Nome....... " & request.form("nome") & vbcrlf
                &"E-mail..... " & request.form("email") & vbcrlf
                &"Cidade..... " & request.form("cidade") & vbcrlf
                &"Estado..... " & request.form("estado") & vbcrlf
                &"Telefone... " & request.form("telefone") & vbcrlf
                &"Assunto.... " & request.form("assunto") & vbcrlf
                &"Mensagem... " & request.form("mensagem") & vbcrlf

Editado por +.jr_Designer.+
Link para o comentário
Compartilhar em outros sites

  • 0

assim:

objMailer.Body = "Nome....... " & request.form("nome") & vbcrlf  & "E-mail..... " & request.form("email") & vbcrlf & "Cidade..... " & request.form("cidade") & vbcrlf & "Estado..... " & request.form("estado") & vbcrlf &  "Telefone... " & request.form("telefone") & vbcrlf & "Assunto.... " & request.form("assunto") & vbcrlf & "Mensagem... " & request.form("mensagem")

[]'s Rafael Spilki

Link para o comentário
Compartilhar em outros sites

  • 0

Deu certooooooOOOO..brigaaaaaaada, Rafael.. Jr. vlw a força, ms meu servidor de hospedagem, só Jesus, foi dificil ms achei um script q ele aceite!!!...rsrsrs

Ufa.. agora é terminar o restante do trabalho!!!

Um FELIZ ANO NOVO à vocês!!!

Tudo de bom, muitos trabalhos e q todos redam muito, tanto em conhecimento quanto em R$..rsrsrs

BjãoOOO ;)

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152k
    • Posts
      651,7k
×
×
  • Criar Novo...