Ir para conteúdo

POWERED BY:

Arquivado

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

migasnet

Envio de email com Anexo - Quebra cabeças

Recommended Posts

oi pessoal,

 

Preciso enviar um email com os elementos de um formulario, tudo feito dentro do mesmo ficheiro asp.

 

Está tudo a funcionar mais ou menos como quero, menos o mais importante, o attach não está vindo!

 

Ou seja, o form está ok, o envio de email de confirmação de recepção está ok, e o envio da mensagem para a caixa de email que eu quero receber também está ok.

 

Só que na confirmação do form, recebo o erro 006~ASP 0206~Cannot call BinaryRead~Cannot call BinaryRead after using Request.Form collection.-2147467259

 

Já pesquisei, tudo o que consegui e a unica coisa que encontrei que se poderia relacionar era com o Request.Form... mas não sei onde corrigir.

 

Preciso ajuda...

 

Abaixo está o código do ficheiro asp. Quem quiser um desafio... agradeço a ajuda!

if request.form("envia")="sim" then enviar="sim"    On Error Resume Next   Dim mySmartUpload   Dim intCount   Set mySmartUpload = Server.CreateObject("aspSmartUpload.SmartUpload")   mySmartUpload.AllowedFilesList = "zip"    mySmartUpload.DenyPhysicalPath = True   mySmartUpload.MaxFileSize = 50000   mySmartUpload.TotalMaxFileSize = 200000   mySmartUpload.Upload   ' Grava o ficheiro na directoria corrente da directoria virtual.   ' intCount = mySmartUpload.Save("/aspSmartUpload/Upload")    intCount = mySmartUpload.Save("c:\Inetpub\wwwroot\...\ficheiros\anexos\")   If Err Then	  Response.Write("<b>Erro: </b>" & Err.description)   Else	  Response.Write(intCount & " file(s) uploaded.")   End IfDim Mensagem 	Mensagem = Mensagem & "Nome: " & request.Form("nome")&chr(10)	Mensagem = Mensagem & "Morada: " & request.Form("morada")&chr(10)	Mensagem = Mensagem & "Código Postal: " & request.Form("cod_pos")&chr(10)	Mensagem = Mensagem & "Telefone: " & request.Form("tele")&chr(10)	Mensagem = Mensagem & "mensagem: " & request.Form("infor")&chr(10)  'cria o objeto para o envio de e-mail Set objCDOSYSMail = Server.CreateObject("CDO.Message")'cria o objeto para configuração do SMTP Set objCDOSYSCon = Server.CreateObject ("CDO.Configuration")'username objCDOSYSCon.Fields("http://schemas.microsoft.com/cdo/configuration/sendusername") = "username"'password objCDOSYSCon.Fields("http://schemas.microsoft.com/cdo/configuration/sendpassword") = "******"'SMTP objCDOSYSCon.Fields("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "server.com.br"'pasta para gravar'objCDOSYSCon.Fields("cdoSMTPServerPickupDirectory") = server.MapPath("/ficheiros/anexos") 'porta do SMTP objCDOSYSCon.Fields("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25'porta do CDO objCDOSYSCon.Fields("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2'timeout objCDOSYSCon.Fields("http://schemas.microsoft.com/cdo/configuration/smtpconnectiontimeout") = 30 objCDOSYSCon.Fields.update 'atualiza a configuração do CDOSYS para o envio do e-mail Set objCDOSYSMail.Configuration = objCDOSYSCon'e-mail do remetente objCDOSYSMail.From = request.form ("email")'e-mail do destinatário objCDOSYSMail.To = "destinatario@server.com.br"'assunto da mensagem objCDOSYSMail.Subject = "Envio de email com attach"'conteúdo da mensagem objCDOSYSMail.TextBody = mensagem'para envio da mensagem no formato html altere o TextBody para HtmlBody 'objCDOSYSMail.HtmlBody = "Teste do componente CDOSYS"'objCDOSYSMail.fields.update'envia o e-mail if intCount > 0 ThenobjCDOSYSMail.AddAttachment ("c:\Inetpub\wwwroot\...\ficheiros\anexos\" & attachment)End IfobjCDOSYSMail.Send 'destrói os objetos Set objCDOSYSMail = Nothing Set objCDOSYSMail = Server.CreateObject("CDO.Message")Set objCDOSYSMail.Configuration = objCDOSYSCon'e-mail do remetente objCDOSYSMail.From = "remetente@server.com.br>"'e-mail do destinatário objCDOSYSMail.To = request.form ("email")'assunto da mensagem objCDOSYSMail.Subject = "Mensagem Recebida"'conteúdo da mensagem objCDOSYSMail.TextBody = "Obrigado pelo seu pedido de informações. Responderemos o mais breve possivel."'para envio da mensagem no formato html altere o TextBody para HtmlBody 'objCDOSYSMail.HtmlBody = "Teste do componente CDOSYS"'objCDOSYSMail.fields.update'envia o e-mail objCDOSYSMail.Send Set objCDOSYSMail = NothingSet objCDOSYSCon = Nothing 		end if

Compartilhar este post


Link para o post
Compartilhar em outros sites

Troque isso

if request.form("envia")="sim" thenenviar="sim"   On Error Resume Next   Dim mySmartUpload   Dim intCount   Set mySmartUpload = Server.CreateObject("aspSmartUpload.SmartUpload")
Por Isso

 

On Error Resume Next   Dim mySmartUpload   Dim intCount   Set mySmartUpload = Server.CreateObject("aspSmartUpload.SmartUpload")if mySmartUpload.form("envia")="sim" thenenviar="sim"

Perceba que não podemos utilizar "Request" quando trabalhamos com dados binários.

 

Portanto, antes você deve criar o objeto "MySmartUpload" e depois utilizar o "IF" com o objeto e seu conjunto de dados.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ok, tentei fazer isso, mas com esta alteraão ele deixa de enviar a mensagem... :(entetanto, descobri que me faltava no form o comando enctype="multipart/form-data".. adicionei e agora dá um erro 500... que quebra cabeças!Preciso ajuda....

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.