Ir para conteúdo

POWERED BY:

Arquivado

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

LostSoul

Erro ao enviar Form

Recommended Posts

Caros colegas, estou com um problema e não estou sabendo resolver, sou iniciante em criação de sites! E necessito muito de uma ajuda, é para um exercício do curso.

Preciso fazer um formulário de contato em ASP com envio de anexo. Estou utilizando o componente CDOSYS, mais não tive sucesso! Acho que não estou sabendo fazer! Segue abaixo o script que estou usando.

 

enviar.asp

<%
sch = "http://schemas.microsoft.com/cdo/configuration/"
Set cdoConfig = Server.CreateObject("CDO.Configuration")


'Variaveis
Dim meuservidorsmtp
Dim minhacontaautenticada
Dim minhasenhaparaenvio
Dim emailorigem
Dim emaildestino

'Abaixo seguem algumas definicoes de variaveis para o envio de seu formulario. Por favor preencha os campos abaixo.

meuservidorsmtp = "smtp.meusite.com.br" ' Informacoes so seu servidor SMTP
minhacontaautenticada = "contato@meusite.com.br" ' conta de e-mail utilizada para enviar
minhasenhaparaenvio = "senha" ' senha da conta de e-mail
emailorigem = "contato@meusite.com.br" ' e-mail que indica de onde partiu a mensagem
emaildestino = "querosaber@meusite.com.br" ' e-mail que vai receber as mensagens do formulario

'Fim da definição manual de parâmetros.

cdoConfig.Fields.Item(sch & "sendusing") = 2
cdoConfig.Fields.Item(sch & "smtpauthenticate") = 1
cdoConfig.Fields.Item(sch & "smtpserver") = meuservidorsmtp
cdoConfig.Fields.Item(sch & "smtpserverport") = 25
cdoConfig.Fields.Item(sch & "smtpconnectiontimeout") = 30
cdoConfig.Fields.Item(sch & "sendusername") = minhacontaautenticada
cdoConfig.Fields.Item(sch & "sendpassword") = minhasenhaparaenvio
cdoConfig.fields.update
Set cdoMessage = Server.CreateObject("CDO.Message")
Set cdoMessage.Configuration = cdoConfig

cdoMessage.BodyPart.Charset = "iso-8859-1"
cdoMessage.From = emailorigem
cdoMessage.To = emaildestino
cdoMessage.Subject = "Formulario de Contato"
cdoMessage.ReplyTo = Request("campoEmail")

strBody = "Dados <br> <br>" & _
"Nome:"& Request("campoNome")& "<br>" & _
"E-Mail:"& Request("campoEmail")& "<br>" & _
"Assunto:"& Request("campoAssunto")& "<br>" & _
"Arquivo:"& Request("campoArquivo")& "<br>" & _
"Mensagem:"& Request("campoMensagem")

strBody = strBody & "."
cdoMessage.HTMLBody = strBody

cdoMessage.Send

Set cdoMessage = Nothing
Set cdoConfig = Nothing

response.write "O e-mail foi processado e enviado com sucesso"
%>

form.html

<form id="validaform" method="post" enctype="multpart/formdata" name="form1" action="enviar.asp"> 
 
        <label><b>Nome:</b><br /> 
        <input name="campoNome" type="text" id="name" size="40"></label><br> 
        <label><b>E-mail:</b><br /> 
        <input name="campoEmail" type="text" id="email" size="40"></label><br> 
        <label><b>Assunto:</b><br /> 
                <select name="campoAssunto"> 
                        <option value="">Escolha uma sugestão</option> 
                        <option value="Opcao1">Dúvidas</option> 
                        <option value="Opcao2">Sugestões</option> 
                        <option value="Opcao3">Inscrição</option>
	        <option value="Opcao4">Publicidade / Divulgue</option> 
                </select> 
        </label> 
        <br> 
        <label><b>Anexar arquivo:</b><br />
	<input name="campoArquivo" type="file"></label>
        <label><b>Mensagem:</b><br /> 
                <textarea name="campoMensagem" cols="35" rows="5"></textarea></label><br> 
        <label><input class="envia_form" type="submit" name="enviar" value="" />    <input class="limpa_form" type="reset" name="limpar" value="" /></label> 
</form>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Qual o erro?

 

você tem o componente instalado no servidor?

 

O email origem deve ser válido e utilizando o dominio do servidor... exemplo....

 

dominio: meusite.com

emailorigem: contato@meusite.com

Compartilhar este post


Link para o post
Compartilhar em outros sites

Qual o erro?

 

você tem o componente instalado no servidor?

 

O email origem deve ser válido e utilizando o dominio do servidor... exemplo....

 

dominio: meusite.com

emailorigem: contato@meusite.com

 

Prezado Patrique, o erro que me aparece é relacionado ao campo ARQUIVO, creio que este formulário não suporte envio de arquivo, ou seja: "ANEXO". Procurei aqui no fórum, e vi alguns tópicos falando sobre "Formulário de Email com Anexo em ASP" mais não tive sucesso! Talvez falte colocar algum código neste daí! Já estou perdido!

 

Os e-mails são todos válidos.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Como mencionado, você além do CDOSYS precisa também de um componente para primeiro enviar o arquivo ao servidor para depois anexá-lo ao e-mail. O link que o Patrique postou, explica como vazer utilizando o componente SaFileUp, mas pode utilizar outro componente, verifique no seu HOST qual está disponível, ou tente utilizar uma rotina de envio sem componente, pesquise por este no "Laboratório de Scripts" desta seção.

 

Att.

Compartilhar este post


Link para o post
Compartilhar em outros sites

uma forma bem simples seria:

 

<%
Set myMail=CreateObject("CDO.Message")
myMail.Subject="Sending email with CDO"
myMail.From="mymail@mydomain.com"
myMail.To="someone@somedomain.com"
myMail.TextBody="This is a message."
myMail.AddAttachment "c:\mydocuments\test.txt"
myMail.Send
set myMail=nothing
%>

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.