Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
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>>
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.
Tente por este
http://wiki.locaweb.com.br/pt-br/Emails_com_anexo_via_cdosys
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.
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
%>
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