Jump to content
Fórum Script Brasil
  • 0

Formulário Para Envio De E-mail


lsardinha
 Share

Question

Peguei no site do scriptbrasil o formulário Fale Conosco que permite colocar em meu site um formulário para envio automático de mensagens para meu e-mail. coloquei na minha página só que quando preencho os dados e envio aparece o erro:

HTTP 500.100 - Servidor interno Erro - erro do ASP

Internet Information Services

Tipo de erro:

Objeto Server, ASP 0177 (0x800401F3)

ProgID inválido. Para obter informações adicionais específicas sobre esta mensagem, visite o site Microsoft Online Support localizado em: http://www.microsoft.com/contentredirect.asp (site em inglês).

/sviventes/teste/enviar.asp, line 14

--> Código do enviar.asp <--

<%
'Declarando variveis
Dim sNameTo, sNameFrom, sEmailFrom, sText, sEmailTo, sAssunto

'Pegando os dados digitados nos campos e colocando em variaveis
sNameFrom = Request.Form("nome")
sEmailFrom = Request.Form("email")
sEmailTo = "[email protected]"
sNameTo = "Nome do Site"
sText = Request.Form("mensagem")
sAssunto = Request.Form("assunto")

'Cria o objeto
  set mailer = server.createobject("SMTPsvg.Mailer")
  Mailer.FromName = sNameFrom
  Mailer.FromAddress = sEmailFrom
'Host para envio de emails
  Mailer.RemoteHost = "smtp2.locaweb.com.br"
  Mailer.AddRecipient sEmailTo, sNameTo
  Mailer.Subject = sAssunto  & " - E-mail"

'Monta a texto para o envio
  strMsgHeader = sNameFrom & "(" & sEmailFrom & ") " & " quem enviou! " & vbCrLf & vbCrLf
  strMsgFooter = sText
  Mailer.BodyText = strMsgHeader & strMsgFooter
' Se for enviado redirecionar para obrigado.asp
  if Mailer.SendMail then
     Response.Redirect "obrigado.asp"
  else
' Se não for enviado mostra o erro que ocoreu
     Response.Write ("Ocorreu um erro.<BR>")
     Response.Write ("O Erro é " & Mailer.Response)
  end if
%>

Link to comment
Share on other sites

18 answers to this question

Recommended Posts

  • 0

Da uma olhada se a linha 14 é essa:

set mailer = server.createobject("SMTPsvg.Mailer")

Acho que o seu servidor não oferece suporte ao componente ASPMAIL

Roda esse código aqui no servidor para verificar se o componente esta instalado

<% @ Language="VBScript" %>

<% Option Explicit %>

<%

Dim theComponent(11)

Dim theComponentName(11)

' componentes

theComponent(0) = "ADODB.Connection"

theComponent(1) = "SoftArtisans.FileUp"

theComponent(2) = "AspHTTP.Conn"

theComponent(3) = "AspImage.Image"

theComponent(4) = "LastMod.FileObj"

theComponent(5) = "Scripting.FileSystemObject"

theComponent(6) = "SMTPsvg.Mailer"

theComponent(7) = "CDONTS.NewMail"

theComponent(8) = "Jmail.smtpmail"

theComponent(9) = "SmtpMail.SmtpMail.1"

theComponent(10) = "Persits.Upload.1"

theComponent(11) = "UnitedBinary.AutoImageSize"

' apelido do componente!

theComponentName(0) = "ADODB"

theComponentName(1) = "SA-FileUp"

theComponentName(2) = "AspHTTP"

theComponentName(3) = "AspImage"

theComponentName(4) = "LastMod"

theComponentName(5) = "FileSystemObject"

theComponentName(6) = "ASPMail"

theComponentName(7) = "CDONTS"

theComponentName(8) = "JMail"

theComponentName(9) = "SMTP"

theComponentName(10) = "Persits Upload"

theComponentName(11) = "AutoImageSize"

Function IsObjInstalled(strClassString)

On Error Resume Next

  IsObjInstalled = False

  Err = 0

Dim xTestObj

Set xTestObj = Server.CreateObject(strClassString)

If 0 = Err Then IsObjInstalled = True

Set xTestObj = Nothing

  Err = 0

End Function

%>

<html>

<head>

<title>O q tem aqui?</title>

</head>

<body>

<table width="100%" border="1" cellspacing="0" cellpadding="0">

  <tr>

    <td align="center"><font face="Verdana, Arial, Helvetica, sans-serif" size="2" color="#000000"><b>Componentes

      instalados:</b></font></td>

  </tr>

  <tr>

    <td> <font face="Verdana, Arial, Helvetica, sans-serif" size="2">

      <table border="0" cellpadding="0" cellspacing="0" width="100%">

        <%

  Dim i

        For i=0 to UBound(theComponent)

      If Not IsObjInstalled(theComponent(i)) Then

     

  Else

            Response.Write "<tr>" & vbCrLf

          Response.Write "<td width=""100%"">" & vbCrLf

          Response.Write "<b>" & theComponentName(i) & "</b>" & vbCrLf

          Response.Write "</td>" & vbCrLf

          Response.Write "</tr>" & vbCrLf

      End If

    Next

    %>

  </table>

</font>

</td>

  </tr>

</table>

</body>

</html>

Link to comment
Share on other sites

  • 0

é.. parece que o servidor não dá suporte ao componente

Link to comment
Share on other sites

  • 0

tem um site que eu fiz que usa a seguinte pagina de contatos utilizando o CDONTS:

contato.asp

<%

'digite seu email na variavel aYouEmail

sYouEmail="[email protected]"

EmailSubject="mensagem de usuario do SITE"

FontColor="#3333FF"

HeadColor="#ffc500"

FormFontColor="#FFFFFF"

FormBackColor="#3333FF"

ErrorColor="red"

Function ValidateField(sFieldvalue, sFieldtype)

ValidField = true

Select Case LCase(sFieldtype)

  Case "name"

  If Len(sFieldvalue) = 0 Then ValidField = False

  Case "email"

  If Len(sFieldvalue) < 5 Then

    ValidField = False

  Else

    If InStr(1, sFieldvalue, "@", 1) < 2 Then

    ValidField = False

    Else

    If InStr(1, sFieldvalue, ".", 1) < 4 Then

      ValidField = False

    End If

    End If

  End If

  Case "message"

  If Len(sFieldvalue) = 0 Then ValidField = False

  Case "else"

  ValidField = False

End Select

ValidateField = ValidField

End Function

Sub ShowForm

%>

<table border="1" cellpadding="0" cellspacing="0" style="border-collapse: collapse" bordercolor="#FFFFFF" width="634">

<tr>

<td width="100%">&nbsp;<center><form action="<%= Request.ServerVariables("Script_Name") %>" method="post">

<p>&nbsp;</p>

<table border="0" cellspacing="0" width="240" cellpadding=0><tr bgcolor="<%=HeadColor%>">

<td ALIGN="left"><font color="<%=FontColor%>" face="verdana,arial,helvetica" size="-1"><B>

Seu Nome:</B></font>&nbsp;</td></tr>

<tr><td><input name="name" type="text" value="<%= Request.Form("name") %>" SIZE="45" style="FONT-SIZE: 11px; COLOR: <%=FormFontcolor%>; FONT-FAMILY: verdana, helvetica, arial; BACKGROUND-COLOR: <%=FormBackColor%>"></INPUT></td>

</tr><tr><td><%

  If dictFields(LCase("name")) Then

  Response.Write "<font color=""" & ErrorColor & """ face=""verdana,arial,helvetica"" size=-2>Voce precisa informar um nome</font>"

Else 

  Response.Write "&nbsp;"

  End If

  %>

</td></tr>

<tr bgcolor="<%=HeadColor%>">

  <td ALIGN="left"><font color="#3333FF" face="verdana,arial,helvetica" size="-1"><B>email:</B></font>&nbsp;</td></tr>

  <tr><td><input name="email" type="text" value="<%= Request.Form("email") %>" SIZE="45" style="FONT-SIZE: 11px; COLOR: <%=FormFontcolor%>; FONT-FAMILY: verdana, helvetica, arial; BACKGROUND-COLOR: <%=FormBackColor%>"></INPUT></td>

  </tr><tr><td><%

  If dictFields(LCase("email")) Then

  Response.Write "<font color=""" & ErrorColor & """  face=""verdana,arial,helvetica"" size=-2>voce precisa informar um endereço de email valido</font>"

Else 

  Response.Write "&nbsp;"

  End If

  %>

</td></tr>

<tr bgcolor="<%=HeadColor%>">

  <td ALIGN="left"><font color="#3333FF" face="verdana,arial,helvetica" size="-1"><B>

        Mensagem:</B></font>&nbsp;</td></tr>

  <tr><td><TEXTAREA NAME="message" WRAP=VIRTUAL COLS="45" ROWS=7 style="FONT-SIZE: 11px; COLOR: <%=FormFontcolor%>; FONT-FAMILY: verdana, helvetica, arial; BACKGROUND-COLOR: <%=FormBackColor%>"><%= Request.Form("message") %></TEXTAREA></td>

  </tr><tr><td><%

  If dictFields(LCase("message")) Then

  Response.Write "<font color=""" & ErrorColor & """  face=""verdana,arial,helvetica"" size=-2> Você precisa digitar uma mensagem</font>"

Else 

  Response.Write "&nbsp;"

  End If

%>

</td></tr>

<tr><td colspan=2><font color="#000000" face="verdana,arial,helvetica" size="-1"><input type="checkbox" name="agree" value="true" <%

  if Len(Request.Form("agree")) > 0 then

  Response.Write "checked"

  End If

  %>> Clique aqui caso deseje fazer parte de nossa lista de contatos</td></tr>

</table><p><input type="submit" value="Envia Mensagem"></input><br></form>

<P>

<%

End Sub

Sub Send

sPunter = Request.Form("Name")

sPunterEmail = Request.Form("Email")

Message = Request.Form("message")

If Request.Form("agree") = "true" then

Mailout = "Ele deseja ser incluido em nossa lista de contatos"

Else

Mailout ="Ele NÃO deseja ser incluido em nossa lista de contatos"

End If

sMessage = "Essa é uma mensagem de " & sPunter & vbcrlf _

        & vbcrlf _

  & vbcrlf _

  & Message & vbcrlf _

  & vbcrlf _

  & "Seu email é: " & sPunterEmail & vbcrlf _

  & vbcrlf _

  & Mailout & vbcrlf _

  & vbcrlf 

Set objNewMail = CreateObject("CDONTS.NewMail")

objNewMail.Send sPunterEmail, sYouEmail, EmailSubject, sMessage

Set objNewMail = Nothing

End Sub

Set dictFields = Server.CreateObject("Scripting.Dictionary")

For Each Field in Request.Form

If ValidateField(Request.Form(Field), Field) = False Then

dictFields.Add LCase(Field), true

End If

Next

If Request.Form.Count <> 0 And dictFields.Count  = 0 Then

%><P>

&nbsp;<P>

&nbsp;<b>Sua Mensagem foi enviada!<BR></b><P><b><i>Obrigado por entrar em contato.</i></b><BR>

<%

Call Send

Else

ShowForm

End If

%></td>

</tr>

</table>

Link to comment
Share on other sites

  • 0

Fiz um teste e apareceu o seguinte erro:

HTTP 500.100 - Servidor interno Erro - erro do ASP

Internet Information Services

Tipo de erro:

Erro de tempo de execução do Microsoft VBScript (0x800A0046)

Permissão negada

/sviventes/teste/e-mail.asp, line 110

109 - Set objNewMail = CreateObject("CDONTS.NewMail")

110 - objNewMail.Send sPunterEmail, sYouEmail, EmailSubject, sMessage

Link to comment
Share on other sites

  • 0

Puts..

você ta rodando esse script do IIS, ou de algum servidor?

você não está com permissões aí..

Link to comment
Share on other sites

  • 0

voce já testou nos dois???

da o mesmo erro??

você vai ter q verificar no seu servidor(brinkster) se eles tem suporte para envio de email.

já na seu IIS você vai ter que instalar um servidor SMTP, infelizmente não posso te ajudar nisso, pois o meu já veio instalado quando compramos nosso WebServer.

Link to comment
Share on other sites

  • 0

o brinkster, até onde eu sei, não aceita nenhum componente de e-mail!

agora que ele virou pago.. já não sei mais..

Link to comment
Share on other sites

  • 0

teste o código rodando ele no meu servidor de iis, e apareceu uma mensagem dizendo:

Sua mensagem foi enviada!

Obrigado por entrar em contato.

mas não encontrei no código uma linha que informasse para qual email esta mensagem será enviada, alguém pode me ajudar?

não entendi

Link to comment
Share on other sites

  • 0

teste o código rodando ele no meu servidor de iis, e apareceu uma mensagem dizendo:

Sua mensagem foi enviada!

Obrigado por entrar em contato.

mas não encontrei no código uma linha que informasse para qual email esta mensagem será enviada, alguém pode me ajudar?

não entendi

Voce esta utilizando o codigo com o CONTS que eu passei??

Se for esse código mude a variavel sYouEmail na terceira linha do script colocando o endereço que vai receber as mensages.

Link to comment
Share on other sites

  • 0

eu selecionei todo o codigo colei em um arquivo de texto e salvei como email.asp depois mudei a variavel que refere ao email que receberá a mensagem salvei de novo. Abri o ie e rodei o arquivo email.asp com o codigo que você passou funciona e mostra uma mensagem que diz que o email foi enviado mas quando vou conferir se chegou a mensgem não tem nada la.

que isso

ajuda, porfavor

Link to comment
Share on other sites

  • 0
eu selecionei todo o codigo colei em um arquivo de texto e salvei como email.asp depois mudei a variavel que refere ao email que receberá a mensagem salvei de novo. Abri o ie e rodei o arquivo email.asp com o codigo que você passou funciona e mostra uma mensagem que diz que o email foi enviado mas quando vou conferir se chegou a mensgem não tem nada la.

que isso

ajuda, porfavor

se você ta usando iis olha nas pastas do emailroot e procure a mensagem que você enviou........

Link to comment
Share on other sites

  • 0

os email estao indo para um pasta de nome Queue . C:\Inetpub\mailroot\queue, porque será que não as recebo no email que coloquei?

este é o codigo:

<%

'Set the response buffer to true so we execute all code before sending to the clients browser

Response.Buffer = True

'Dimension variables

Dim strBody 'Holds the body of the e-mail

Dim objCDOMail 'Holds the mail server object

Dim strMyEmailAddress 'Holds your e-mail address

Dim strCCEmailAddress 'Holds any carbon copy e-mail addresses if you want to send to more tahn on e-mail address

Dim strReturnEmailAddress 'Holds the return e-mail address of the user

'----------------- Place your e-mail address in the following sting ----------------------------------

strMyEmailAddress = "[email protected]"

'-----------------------------------------------------------------------------------------------------

'----------- Place Carbon Copy e-mail address's in the following sting, supporated by ; --------------

'Use this string only if you want to send the copy's of the e-mail to more than one person

strCCEmailAddress = "[email protected]"

'-----------------------------------------------------------------------------------------------------

'Read in the users e-mail address

strReturnEmailAddress = Request.Form("email")

'Initialse strBody string with the body of the e-mail

strBody = "Name: " & Request.Form("firstName") & " " & Request.Form("lastName") & vbCrLf & vbCrLf

strBody = strBody & "Address: -" & vbCrLf

If (Request.Form("street1")) > "" Then

strBody = strBody & " " & Request.Form("street1") & vbCrLf

End If

If (Request.Form("street2")) > "" Then

strBody = strBody & " " & Request.Form("street2") & vbCrLf

End If

If (Request.Form("town")) > "" Then

strBody = strBody & " " & Request.Form("town") & vbCrLf

End If

If (Request.Form("county")) > "" Then

strBody = strBody & " " & Request.Form("county") & vbCrLf

End If

If (Request.Form("country")) > "--- Choose One ---" Then

strBody = strBody & " " & Request.Form("country") & vbCrLf

End IF

If (Request.Form("postCode")) > "" Then

strBody = strBody & " " & Request.Form("postCode") & vbCrLf

End If

strBody = strBody & vbCrLf & "Telephone: " & Request.Form("tel") & vbCrLf & vbCrLf

strBody = strBody & "E-mail: " & strReturnEmailAddress & vbCrLf & vbCrLf

strBody = strBody & "Enquiry: - " & vbCrLf & Request.Form("enquiry") & vbCrLf

'Check to see if the user has entered an e-mail address and that it is a valid address otherwise set the e-mail address to your own otherwise the e-mail will be rejected

If Len(strReturnEmailAddress) < 5 OR NOT Instr(1, strReturnEmailAddress, " ") = 0 OR InStr(1, strReturnEmailAddress, "@", 1) < 2 OR InStrRev(strReturnEmailAddress, ".") < InStr(1, strReturnEmailAddress, "@", 1) Then

'Set the return e-mail address to your own

strReturnEmailAddress = strMyEmailAddress

End If

'Create the e-mail server object

Set objCDOMail = Server.CreateObject("CDONTS.NewMail")

'Send the e-mail

'Who the e-mail is from (this needs to have an e-mail address in it for the e-mail to be sent)

objCDOMail.From = Request.Form("firstName") & " " & Request.Form("lastName") & " <" & strReturnEmailAddress & ">"

'Who the e-mail is sent to

objCDOMail.To = strMyEmailAddress

'Who the carbon copies are sent to

objCDOMail.Cc = strCCEmailAddress

'The subject of the e-mail

objCDOMail.Subject = "Enquiry sent from enquiry form on website"

'The main body of the e-amil

objCDOMail.Body = strBody

'The format the e-mail is sent in

objCDOMail.MailFormat = CdoMailFormatText 'If you want it to be in MIME(HTML) format use CdoMailFormatMIME

'Importance of the e-mail (0=Low, 1=Normal, 2=High)

objCDOMail.Importance = 1

'Send the e-mail

objCDOMail.Send

'Close the server object

Set objCDOMail = Nothing

%>

<html>

<head>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">

<title>Contact Us</title>

<!-- The Surf-Net e-mail script and form is written by Bruce Corkhill ©2001

If you want your own e-mail script and form then goto http://www.surf-net.co.uk -->

<!-- Close the HTML document head -->

</head>

<!-- Start the HTML body -->

<body text="#000000" bgcolor="#FFFFFF" link="#0000FF" vlink="#990099" alink="#FF0000" background="images/background.gif">

<!-- Table on a width of 95% to the browser window and containing the title -->

<table width="95%" border="0" align="center" cellpadding="0" cellspacing="0">

<tr>

<td>

<br>

<h1 align="center">Contact Us</h1>

</td>

</tr>

</table>

<!-- Introduction body of text that is justified which looks indented by hailing a table width of 85% -->

<table width="85%" border="0" align="center" cellpadding="0" cellspacing="0">

<tr>

<td>

<!-- Justify the text -->

<div align="justify">

<!-- Introduction Text -->

Thank-you <% = Request.Form("firstName") %> <% = Request.Form("lastName") %> for filling in the enquiry form.

<br>

I shall be receiving your enquiry shortly and will reply as soon as possible.

</div>

</td>

</tr>

</table>

<!-- Close the body -->

</body>

<!-- Close the HTML script -->

</html>

de vermelho são as variáveis e de azul são os emails que deverão receber as mensagens. quero entender?

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share



  • Forum Statistics

    • Total Topics
      150.7k
    • Total Posts
      648.4k
×
×
  • Create New...