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

Email Com Envio De Anexo


EDSONET

Pergunta

Bem galera como eu tinha prometido, quando eu conseguisse eu iria escrever um tópico ensinando como fazer um envio de e-mail com anexo.

Primeiro tem que criar um formulário inicial, onde o usuário vai colocar os seus dados:

- Nome

- E-mail

- Assunto

- Mensagem

- Anexo

INDEX.ASP :

<html>
<head>
<title>ENVIA E-MAIL COM ANEXO</title>
</head>
<body>
<table border="0" width="100%" cellspacing="0" cellpadding="0">
 <tr>
   <td width="100%">
     <form method="POST" action="envia_email.asp">
       <table border="1" width="100%">
         <tr>
           <td width="40%" align="right">Nome:</td>
           <td width="60%"><input type="text" name="txt_nome" size="24"></td>
         </tr>
         <tr>
           <td width="40%" align="right">E-mail:</td>
           <td width="60%"><input type="text" name="txt_email" size="24"></td>
         </tr>
         <tr>
           <td width="40%" align="right">Assunto:</td>
           <td width="60%"><input type="text" name="txt_assunto" size="24"></td>
         </tr>
         <tr>
           <td width="40%" align="right">Mensagem:</td>
           <td width="60%"><textarea rows="2" name="txt_mensagem"cols="20"></textarea></td>
         </tr>
         <tr>
           <td width="40%" align="right">Anexo:</td>
           <td width="60%"><input type="text" name="txt_anexo" size="24" value="<%=session("arquivo")%>">
             <a href="up.html">anexar</a></td>
         </tr>
         <tr>
           <td width="40%" align="right">&nbsp;</td>
           <td width="60%"><input type="submit" value="Enviar" name="b1"></td>
         </tr>
       </table>
     </form>
   </td>
 </tr>
</table>

</body>

</html>
Se prestaram atenção no código viram que no campo Anexo tem uma session onde vai mostrar o nome do arquivo a ser anexado. <%=session("arquivo")%> Existe também um link ao lado do campo ANEXO onde o usuário vai poder escolher o seu arquivo para anexar. Nesta pagina UP.html, vai fazer UPLOAD do arquivo para dentro de uma pasta (“arquivos”) no servidor web, e daí o anexo será feito do arquivo que esta no servidor. UP. HTML :
<html>

<FORM METHOD="POST" ENCTYPE="multipart/form-data" ACTION="Aspupload.asp"> 

<table border="0" width="100%" cellspacing="0" cellpadding="0">
 <tr>
   <td width="35%" rowspan="3">
   </td>
   <td width="30%">
<p align="justify" style="line-height: 100%"><font size="1" face="Arial">
SELECIONE O ARQUIVO CORRETO PARA O ENVIO NO FORMULÁRIO</font>
   </td>
   <td width="35%" rowspan="3">
   </td>
 </tr>
 <tr>
   <td width="30%">
<p align="right"> 
<INPUT TYPE=FILE SIZE=60 NAME="FILE1" size="44">
   </td>
 </tr>
 <tr>
   <td width="30%">
     <p align="right"><INPUT TYPE=SUBMIT VALUE=" UPLOAD "> 
   </td>
 </tr>
</table>

</FORM>
</html>
ASPUPLOAD.ASP :
<%
Set Upload = Server.CreateObject("Persits.Upload.1")
Count = upload.Save("\\caminho_do_servidor\clusterX\login_ftp\wwwroot\arquivos\")
%>

<%= Count %> <FONT SIZE="1" FACE="ARIAL">ARQUIVO ENVIADO

<%
Set FSO = CreateObject("scripting.FileSystemObject")
Set Folder = FSO.GetFolder("\\caminho_do_servidor\clusterX\login_ftp\wwwroot\arquivos\")
Set Files = Folder.Files
%>

<%
For each objUploadedFile In Upload.Files
arquivo = objUploadedFile.ExtractFileName
response.Write(": " & objUploadedFile.ExtractFileName)
seq = seq + 1
Next

'criei uma session para armazenar o no do arquivo
session("arquivo") = arquivo

if session("arquivo") <> "" then
  response.redirect "index.asp"
end if
%>

Bom o UP.HTML juntamente com o ASPUPLOAD.ASP irão enviar (com upload) para uma pasta (arquivos) dentro do servidor. Dentro do código da pagina ASPUPLOAD.ASP existe uma SESSION onde irá armazenar o nome do arquivo. Depois do arquivo enviado para o servidor a pagina é redirecionada para a pagina inicial INDEX.ASP ai sim poderá ser enviado o e-mail com o anexo. Depois de preenchido o formulário e já com o arquivo no servidor podemos enviar o e-mail. ENVIA_EMAIL.ASP
<%
dim arquivo
arquivo = session("arquivo")
caminho = "\\caminho_do_servidor\clusterX\login_ftp\wwwroot\arquivos\"
caminho = caminho & arquivo

'Vamos recuperar os valores do formulário
nome = Request.Form("txt_nome")
email = Request.Form("txt_email")
assunto = Request.Form("txt_assunto")
mensagem = Request.Form("txt_mensagem")

'Agora vamos criar o objeto Cdonts e enviar a mensagem
Set msg = Server.CreateObject("CDONTS.NewMail") 
msg.From = email 
msg.To="seu@email.com.br"
msg.Subject = assunto
texto = "O usuário "&nome&" lhe envio a mensagem abaixo:"
texto = texto & mensagem
msg.Body = texto
'Bom ai esta a linha onde vai anexar o arquivo ao e-mail
msg.AttachFile caminho
msg.Send
Set msg = Nothing

'Avisamos ao usuário que sua mensagem foi enviada corretamente.
Response.write "E-mail Enviado "
Response.Write session("arquivo")
%>

Olhando assim não parece ser tão difícil né? Mais foi sim. Dei uma super pesquisada na internet e não achei nada que falasse a respeito de um e-mail com anexo. Catando um pouco aqui, um pouco ali, montei esse sistema.

Claro isso é o básico, da pra fazer varias restrições coisa que eu vou trabalhar em cima agora. Mais daí é barbada.

Abraços biggrin.gif

Link para o comentário
Compartilhar em outros sites

7 respostass a esta questão

Posts Recomendados

  • 0

hehehe

cê vai vê tiu.. hehe

Mas edson, faz o seguinte..

copia o codigo daqui, e cola lá.. bem basico.. depois eu fecho o tópico aqui, e fica ok..

que acha?

eu tb poderia fazer isso..

mas como o codigo é seu, eu acho mais justo você mesmo postar lá..

certo?

se quiser que eu poste lá.. da um toke

t+

Link para o comentário
Compartilhar em outros sites

  • 0
Olá, estou aqui pela primeira vez! Antes de tudo obrigado pela função criada!

Gostaria de saber quais informações devo colocar na linha:

Count = upload.Save("\\caminho_do_servidor\clusterX\login_ftp\wwwroot\arquivos\")

você poderia exemplificar? o que é clusterX?

bom clusterx é uma pasta qualquer da sua hospedagem

\\caminho_do_servidor\clusterX\login_ftp\wwwroot\arquivos\, refere-se ao caminho onde o arquivo esta no server.

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
      152,3k
    • Posts
      652,3k
×
×
  • Criar Novo...