Ir para conteúdo

POWERED BY:

Arquivado

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

ronisilva

Enviar arquivo em anexo por email sem utilizar um banco de dados?

Recommended Posts

<%
  ' change to address of your own SMTP server
  strHost = "mail.elinkisp.com"
  ' We use AspUpload component to capture uploaded file and access other form items.
  ' Because of the special ENCTYPE attribute we can no longer use Request.Form,
  ' we must use Upload.Form instead.
  ' More more info on AspUpload, visit www.aspupload.com.
  Set Upload = Server.CreateObject("Persits.Upload")
  Upload.IgnoreNoPost = True

  ' capture an upload and save uploaded files (if any) in temp directory
  Upload.Save "c:\upload"

  ' We cannot use Upload.Form or Upload.Files until Upload.Save is called.
  If Upload.Form("Send") <> "" Then
     Set Mail = Server.CreateObject("Persits.MailSender")
     Mail.From = "info@persits.com"
     Mail.FromName = "Attachment Demo"
     Mail.Host = strHost
     Mail.Subject = Upload.Form("Subject")
     Mail.Body = Upload.Form("Body")
     Mail.AddAddress Upload.Form("To")

     ' Handle attached file via Upload.Files collection.
     ' Check if a file was ineed uploaded
     If Not Upload.Files("Attachment") Is Nothing Then
        Mail.AddAttachment Upload.Files("Attachment").Path
     End If

     ' We are done. Send message
     Mail.Send
     Response.Write "Success!"
  End If
%>

<HTML>
<BODY BGCOLOR="#FFFFFF">
<!-- Note special ENCTYPE attribute: it is necessary to upload a file-->
<FORM METHOD="POST" ACTION="UploadAttachment.asp" ENCTYPE="multipart/form-data">
<TABLE CELLSPACING=0 CELLPADDING=0>
<TR><TD>Enter email:</TD><TD><INPUT TYPE="TEXT" NAME="To"></TD></TR>
<TR><TD>Enter Subject:</TD><TD><INPUT TYPE="TEXT" NAME="Subject"></TD></TR>
<TR><TD>Enter Body:</TD><TD><TEXTAREA NAME="Body"></TEXTAREA></TD></TR>
<TR><TD>Select File Attachment:</TD><TD><INPUT TYPE=FILE NAME="Attachment"></TD></TR>
<TR><TD COLSPAN=2><INPUT TYPE=SUBMIT NAME="Send" VALUE="Send"></TD></TR>
</TABLE>
</FORM>
</BODY>
</HTML>

 

 

 

gente ja tentei mais de mil vezez mas não consigo achar o erro no código quanto tento enviar o arquivo anexo ele simplesmente não vai. aparece uma mensagem de erro falando que ocorreu um erro com o servidor interno!

gostaria que vocês me dessem uma luz sobre como faço para enviar arquivo em anexo por email sem utilizar um banco de dados!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

o erro que está aparecendo é o seguinte

 

Internal Server Error

The server encountered an internal error or misconfiguration and was unable to complete your request.

Please contact the server administrator to inform of the time the error occurred and of anything you might have done that may have caused the error.

 

More information about this error may be available in the server error log.

 

 

 

--------------------------------------------------------------------------------

 

Web Server at graficaportalcards.com.br

Compartilhar este post


Link para o post
Compartilhar em outros sites

você esta executando ele no localhost ou em algum server, e faz como mencionado acima, vai nas opções de seu navegador e desabilite a opção de exibir mensagnes de erro HTTP amivaeis, do browser.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu já coloquei pra mandar mensagem amigavel mas o problema é o seguinte eu tento enviar por meio do servidor mas não descubro porque a mensagem não chega até o meu email; se eu retiro o código de envio para o email e deixo só do servidor ai ele fufa.

 

<!--O formulário estará chamando a página upload.asp, especificada no atributo action do elemento FORM.
Segue abaixo o código da página upload.asp. -->
<%@ Language=VBScript %>
<%
Dim Contador, Tamanho
Dim ConteudoBinario, ConteudoTexto
Dim Delimitador, Posicao1, Posicao2
Dim ArquivoNome, ArquivoConteudo, PastaDestino
Dim objFSO, objArquivo

'Inclui o arquivo especificado em anexo
'If Not Upload.Files("Attachment") Is Nothing Then
       ' Mail.AddAttachment Upload.Files("Attachment").Path

'strPath = Server.MapPath(".")
'Mail.AddAttachment strPath & myFile
'Mail.AddAttachment "E:/vhosts/graficaportalcards.com.br/httpdocs/adm/a.jpg"


PastaDestino = Server.MapPath("adm\fotos")

'Determina o tamanho do conteúdo
Tamanho = Upload.TotalBytes

'Obtém o conteúdo no formato binário
ConteudoBinario = Upload.BinaryRead(Tamanho)

'Transforma o conteúdo binário em string
For Contador = 1 To Tamanho
 ConteudoTexto = ConteudoTexto & Chr(AscB(MidB(ConteudoBinario, Contador, 1)))
Next 

'Determina o delimitador de campos
Delimitador = Left(ConteudoTexto, InStr(ConteudoTexto, vbCrLf) - 1)

'Percorre a String procurando os campos
'identifica os arquivo e grava no disco
Set objFSO = Server.CreateObject("Scripting.FileSystemObject")

Posicao1 = InStr(ConteudoTexto, Delimitador) + Len(Delimitar)

do while True
 ArquivoNome = ""
 Posicao1 = InStr(Posicao1, ConteudoTexto, "filename=")
 if Posicao1 = 0 then
   exit do
 else
  'Determina o nome do arquivo
  Posicao1 = Posicao1 + 10
  Posicao2 = InStr(Posicao1, ConteudoTexto, """")
  For contador = (Posicao2 - 1) to Posicao1 step -1
   if Mid(ConteudoTexto, Contador, 1) <> "\" then '"
     ArquivoNome = Mid(ConteudoTexto, Contador, 1) & ArquivoNome
   else
     exit for
   end if
  next

  'Determina o conteúdo do arquivo
  Posicao1 = InStr(Posicao1, ConteudoTexto, vbCrLf & vbCrLf) + 4
  Posicao2 = InStr(Posicao1, ConteudoTexto, Delimitador) - 2
  ArquivoConteudo = Mid(ConteudoTexto, Posicao1, (Posicao2 - Posicao1 + 1))

  'Grava o arquivo
  if ArquivoNome <> "" then
    Set objArquivo = objFSO.CreateTextFile(PastaDestino & "\" & ArquivoNome, true)
    objArquivo.WriteLine ArquivoConteudo
    objArquivo.Close

    Response.write "Arquivo " & PastaDestino & "\" & _
    ArquivoNome & " gravado com sucesso!<br>"
    Set objArquivo = nothing
  end if
end if
Loop
Set objFSO = nothing
%>

<!--Crie uma página que contém o formulário onde existem os elementos do tio "File" como abaixo: -->

<!-------------------------------------------------------------------------------------------------->
<!-------------------------------------------------------------------------------------------------->
<!-------------------------------------------------------------------------------------------------->

<%
'Dim Mail, strFromName, strFromEmail, strToEmail, strSubject 
'Dim strBody, strThisPage, bValidInput, strhost, Vemail, Varquivo1, Varquivo2 
' Retorna o nome do arquivo de script e a url da pagina
'strThisPage = Upload.ServerVariables("SCRIPT_NAME")
'strReferringPage = Upload.ServerVariables("HTTP_REFERER")

'nome do Servidor
'strhost = "smtp.graficaportalcards.com.br" 

'pegando dados do formulario
'Vemail = Upload.Form("txtemail")
'Varquivo1 = Upload.Form("txtarquivo1")
'Varquivo2 = Upload.Form("txtarquivo2")

'nome do remetente
'strFromName = Trim(Upload.Form("txtemail"))

'endereço de e-mail do remetente
'strFromEmail = "atitudeparceira@portalcards.com.br"

'endereço do destinatário
'strToEmail = "atitudeparceira@portalcards.com.br"

'corpo da mensagem
'strSubject = "Anexo Grafica Portal Cards"
'strBody = Trim(Upload.Form("email"))

'monta o corpo da mensagem
'strBody = "<html>" _
'& "<head>" _
'& "</head>" _
'& "<body bgcolor=""#FFFFFF""><p><b>Email:</b> "& Vemail & "</p>"_
'& "<p><b>Arquivo anexo um:</b> "& Varquivo1 & "</p>"_
'& "<p><b>Arquivo anexo dois:</b> "& Varquivo2 & "</p>"_
'& "</body>" _
'& "</html>"

'validação dos dados
'bValida_Entrada = True
'bValida_Entrada = bValida_Entrada And strFromName <> ""
'bValida_Entrada = bValida_Entrada And Valida_Email(strFromEmail)
'bValida_Entrada = bValida_Entrada And Valida_Email(strToEmail)

'se o e-mail é válido envia a mensagem
'If bValida_Entrada Then
'Set Mail = Server.CreateObject("Persits.MailSender") 

'Mail.Host = strHost
'Mail.From = strFromEmail
'Mail.AddAddress strToEmail
'Mail.Subject = strSubject
'Mail.IsHTML = True
'Mail.Body = strBody

'on error resume next

'Mail.Send
'mensagem_erro = ""
'if err <> 0 then
'mensagem_erro = "Ocorreu o seguinte erro durante o envio do e-mail. Por favor, certifique-se de que preencheu todas as informações: " & Err.description
'end if

'Set Mail = Nothing

'on error goto 0
'Response.redirect "teste.asp"

'Else

'If "http://" & Upload.ServerVariables("HTTP_HOST") & strThisPage = strReferringPage Then
'Response.Write "Ocorreu um erro . Verifique suas informações: " & "<BR>" & vbCrLf
'End If

'exibe o formulário
'Exibe_Formulario strThisPage, strFromName, strFromEmail, strToEmail, strBody
'End If%>

<%
'verifica se o e-mail é válido
'Function Valida_Email(strEmail)
'Dim bIsValid
'bIsValid = True
'If Len(strEmail) < 5 Then
'bIsValid = False
'Else
'If Instr(1, strEmail, " ") <> 0 Then
'bIsValid = False
'Else
'If InStr(1, strEmail, "@", 1) < 2 Then
'bIsValid = False
'Else
'If InStrRev(strEmail, ".") < InStr(1, strEmail, "@", 1) + 2 Then
'bIsValid = False
'End If
'End If
'End If
'End If
'Valida_Email = bIsValid
'End Function%>

<%'Sub Exibe_Formulario(strPageName, strFromName, strFromEmail, strToEmail, strBody)%>

<%

  ' change to address of your own SMTP server
'   strHost = "smtp.graficaportalcards.com.br"
  ' We use AspUpload component to capture uploaded file and access other form items.
  ' Because of the special ENCTYPE attribute we can no longer use Request.Form,
  ' we must use Upload.Form instead.
  ' More more info on AspUpload, visit www.aspupload.com.
'   Set Upload = Server.CreateObject("Persits.Upload")
'   Upload.IgnoreNoPost = True
  ' capture an upload and save uploaded files (if any) in temp directory
'   Upload.Save "adm/fotos"
  ' We cannot use Upload.Form or Upload.Files until Upload.Save is called.
'   If Upload.Form("Send") <> "" Then
'      Set Mail = Server.CreateObject("Persits.MailSender")
'      Mail.From = "atitudeparceira@portalcards.com"
'      Mail.FromName = "Attachment"
'      Mail.Host = strHost
'      Mail.Subject = Upload.Form("Subject")
'      Mail.Body = Upload.Form("Body")
'      Mail.AddAddress Upload.Form("To")
     ' Handle attached file via Upload.Files collection.
     ' Check if a file was ineed uploaded
'      If Not Upload.Files("Attachment") Is Nothing Then
'         Mail.AddAttachment Upload.Files("Attachment").Path
'      End If
     ' We are done. Send message
'      Mail.Send
'      Response.Write "Success!"
'   End If
%>

<%
Set objMail = server.createobject("CDONTS.NewMail")
objMail.From = "atitudeparceira@portalcards.com.br"
objMail.To = "atitudeparceira@portalcards.com.br"
objMail.Subject = "E-mail com anexo"
objMail.Body = "Segue o arquivo teste.jpg"
objMail.MailFormat = 0
objMail.Attachfile "E:/vhosts/graficaportalcards.com.br/httpdocs/adm/fotos/teste.jpg", "teste.jpg"
objMail.Send
Response.Write "Mensagem Enviada"
Set objMail = Nothing
%>

 

hhhhhhhhhhhhhhhhhhheeeeeeeeeeeeeeeeeeeeelpppppppppppppppppppppppppppppppppppppppp!!!!!!!!!!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você tem de desmarcar a opção da mensagem amigavel, senão não há como saber em que linha está ocorrendo o erro.

Você está usando um servidor local ou um serviço de hospedagem para testar isso ?

Nesta linha:

objMail.Attachfile "E:/vhosts/graficaportalcards.com.br/httpdocs/adm/fotos/teste.jpg", "teste.jpg"

 

O caminho está correto ?

O Arquivo existe ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Sim o caminho está correto e o arquivo existe. Eu estou em um serviço de hospedagem, porem tenho uma duvida este teste.jpg está substituindo o nome do arquivo real?

 

Pelo que você analisou do meu codigo ele parece estar correto??

Compartilhar este post


Link para o post
Compartilhar em outros sites

o SMTP é válido ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

verifique se o seu host não esta tendo uma instabilidade no serviço.

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.