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("\\terraempresas.com.br\cluster8\nossae\wwwroot\arquivos\")
%>

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

<%
Set FSO = CreateObject("scripting.FileSystemObject")
Set Folder = FSO.GetFolder("\\terraempresas.com.br\cluster8\\nossae\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!!! wink.gif

Link para o comentário
Compartilhar em outros sites

15 respostass a esta questão

Posts Recomendados

  • 0

cara..

parabens por montar todo o esquema!

mas se importa em postar isso ali no tópico de funções?

assim fica mais organizado..

ok?

Link para o comentário
Compartilhar em outros sites

  • 0
Esse que é o problema. Já estou procurando a muito tempo procurando e não encontro. E quando finalmente acho o código ele não me serve.

Se eu informar os componentes, será que alguém me da uma ajuda para alterar o código?

isso se você quiser alguma solução prontinha que sirva para você da forma como quer... é possivel de não achar mesmo... !!!

basta pegar o nome do componente e jogar no google... logo você encontra vários exemplos...

Link para o comentário
Compartilhar em outros sites

  • 0
Esse que é o problema. Já estou procurando a muito tempo procurando e não encontro. E quando finalmente acho o código ele não me serve.

Se eu informar os componentes, será que alguém me da uma ajuda para alterar o código?

Companheiro, o caminho mais fácil é verificar com o responsável pelo seu servidor qual componente é utilizado pra enviar email. A partir daí é que você tem que direcionar seu desenvolvimento.

Se ele não souber te responder, você pode começar pelo CDONTS. Se o SO for Windows 2003 Server, é muito provavel que você tenha que utilizar o CDO (o CDONTS não vêm mais por padrão no Windows 2003 Server).

PS 1: O componente utilizado no exemplo é o AspEmail (da Persists Software) que pode ser baixado no site http://www.aspemail.com. Porém algumas funcionalidades só funcionam por 30 dias, depois tem que comprar uma key.

PS 2: Códigos de exemplo é só Googlear

Referências:

http://www.issociate.de/board/goto/926332/...L_on_IIS_6.html

Link para o comentário
Compartilhar em outros sites

  • 0

essa linha indica o caminho do arquivo no servidor...

colocamos um exemplo aqui... você esta na pasta raiz de seu server... www ou public_html ou site.com ou outro nome enfim cada servidor tem o seu...

o arquivo a anexar ta na pasta uploads (http://site.com/uploads/arquivo.ext)

você tem que passar o caminho fisico desse arquivo no server.

arquivo = session("arquivo")
caminho = server.mappath("uploads/"&arquivo)

Link para o comentário
Compartilhar em outros sites

  • 0
essa linha indica o caminho do arquivo no servidor...

colocamos um exemplo aqui... você esta na pasta raiz de seu server... www ou public_html ou site.com ou outro nome enfim cada servidor tem o seu...

o arquivo a anexar ta na pasta uploads (http://site.com/uploads/arquivo.ext)

você tem que passar o caminho fisico desse arquivo no server.

arquivo = session("arquivo")
caminho = server.mappath("uploads/"&arquivo)

Eu fiz as alterações informadas ... mas permanece na mesma ... ele envia o arquivo para o ftp ... me avisa que tem um arquivo no ftp ... mas não traz o anexo junto ... já tentei todos os caminhos possivel ... mas o anexo não vem junto

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,5k
×
×
  • Criar Novo...