Ir para conteúdo

Arquivado

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

marcosalmeida

Erro em formulário cdsys

Recommended Posts

Olá pessoal,

Estou quebrando cabeça com um problema neste formulário.

Quando envio para poucos contatos, tipo uns 10 ele envia normalmente, mas quando colo mais de contatos ele apresenta erro na linha Send conforme abaixo

 

error '8004020f'

/Mailing/teste.asp, line 228

 

Segue meu codigo, se alguem tiver idéia do que pode ser ficarei grato pela ajuda. Estou usando o smtp do gmail com autenticação.

 

<%
response.buffer = true
Server.ScriptTimeout = 999999999


v_situacao = ""
useraction=Request.QueryString("acao")
Select Case useraction 
   Case "upload" 
       	On Error Resume Next
				Dim sCaminho
				sCaminho = Replace(LCase(Server.MapPath("/")),"web","Web/Mailing")
				Set objUpload = Server.CreateObject ("Dundas.Upload.2")
				objUpload.MaxFileSize=1548576
				objUpload.UseUniqueNames=FALSE
				objUpload.Save sCaminho
				If Err.Number <> 0 Then
				Response.Redirect "Erro_dundasupload.asp"
				Else
				For Each objUploadedFile in objUpload.Files
				'Response.Write objUploadedFile.Path 
				 Session("arquivo") =objUploadedFile.Path
				If InStr(1,objUploadedFile.ContentType,"octet-stream") Then
				Response.Write " MAS O Arquivo foi REMOVIDO por ser um tipo proibido"
				objUploadedFile.Delete
				End If
				Next
				End If
				Set objUpload = Nothing


v_situacao = ""
   Case "email" 'caso a acao seja email, executa script do CDOSYS
       lista = emails()
       if len(lista) > 0 then


sch = "http://schemas.microsoft.com/cdo/configuration/"
Set cdoConfig = Server.CreateObject("CDO.Configuration")


'Variaveis
Dim meuservidorsmtp
Dim minhacontaautenticada
Dim minhasenhaparaenvio
Dim emailorigem
Dim emaildestino

meuservidorsmtp = "smtp.gmail.com" ' Informacoes so seu servidor SMTP
minhacontaautenticada = "impacto" ' conta de e-mail utilizada para enviar
minhasenhaparaenvio = "web2011" ' senha da conta de e-mail
emailorigem = Trim(Request.Form("nomerem")) & "<" & Trim(Request.Form("emailrem")) & ">"' e-mail que indica de onde partiu a mensagem

emaildestino = lista

'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 & "smtpusessl") = True
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.Bcc = emaildestino
cdoMessage.Subject =  Request("assunto")
cdoMessage.ReplyTo = Request("emailrem")
strBody = Request("recado")
cdoMessage.AddAttachment(Session("Arquivo")) ''anexa o arquivo
cdoMessage.AddAttachment "e:\home\site\Web\Mailing\Encarte-ESPECIAL-150_edições.pdf" ''anexa o arquivo


strBody = strBody
cdoMessage.HTMLBody = strBody

cdoMessage.Send

Set cdoMessage = Nothing
Set cdoConfig = Nothing


Session("Arquivo") = ""
           Response.Write "<script>alert('E-mail enviado com Sucesso!')</script>"
           %>
          <br>Redirecionando...</i><br><meta http-equiv="refresh" content="1;URL=Teste.asp" />
        <%
	else
       	response.write "<script>alert('A lista de emails no banco de dados está vazia, favor verificar');</script>"
           %>
        <br>Redirecionando...</i><br><meta http-equiv="refresh" content="1;URL=Teste.asp" />
        <%
           Session("Arquivo") = ""
       end if
End Select

function emails() 'Retorna os emails cadastrados como uma string
dsn="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=e:\home\site\Dados\News.mdb"

Set Conn = Server.CreateObject("ADODB.Connection")
Set Rs = Server.CreateObject("ADODB.Recordset")
Conn.Open dsn
SQL = "SELECT Email from NewsLatter order by id"
rs.Open SQL, Conn, 1, 3
do while not rs.eof
	str = str & rs("email") &","
	rs.movenext
Loop
emails = str
on error resume next
end function
%>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá Marcos :joia: Tudo certo!!!

 

Em seu componente CDOSYS, altere esta linha da variável meuservidorsmtp onde esta smtp.gmail.com para localhost e teste novamente seu formulário para ver se funcionará.

 

 

---> meuservidorsmtp = "smtp.gmail.com"

 

Abraços,

 

Leandro de Azevedo.

 

:( Puxa kara, peço-lhe desculpas, eu nao li direito seu post.

 

 

Mas existe um outro caso igual ao seu já resolvi conforme pesquisei, verifique aqui http://forum.imasters.com.br/topic/421321-error-8004020f/ se isto pode ajuda-lo, o CDOSYS precisa ter e-mails validos para autenticação.

 

 

Abracos,

 

Leandro de Azevedo.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Obrigado pela ajuda. Na LocaWeb eu desabilite o a linha

cdoConfig.fields.update

e está enviando normalmente (enviei para 40.000)

 

Porém, na hospedagem windows da UOL HOST não envia por nada. Dá o seguinte erro:

CDO.Message.1 error '80070002'
The system cannot find the file specified.

inclusive com o

cdoConfig.fields.update

. O curioso é que com 30 contatos envia.

 

O que pode ser?

Compartilhar este post


Link para o post
Compartilhar em outros sites

verifique se não tem limite de envio, para combater SPAM

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não é problema com o limite de envio não. UOL HOST permite 3.000 envios por dia.

o error '8004020f' permanece.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Só falar o numero do erro fica meio generico e dificil de lhe ajudar, além de postar o erro ou o codigo completo como fez, é sempre bom indicar qual é a linha onde o erro ocorre, no seu caso, a linha 228, qual é ?

 

Há pouco tempo atras um colega estava com o mesmo problema que você, veja se não é o seu caso também:

http://forum.imasters.com.br/topic/421321-error-8004020f/

Compartilhar este post


Link para o post
Compartilhar em outros sites

verifique se o SMTP e as outras configurações são válidas, O que significa que o e-mail foi rejeitado pelo servidor por algum motivo. Aqui estão algumas coisas que você pode tentar aliviar o problema:

 

Verifique se o servidor SMTP permite anônimo (não autenticada) . Se a sua saída SMTP requer autenticação.

 

Verifique se o problema é específico para o nome de domínio utilizado nos endereços de e-mail dos destinatários. Por exemplo, alguns usuários se queixaram de que eles podem enviar para os usuários em seus próprios domínios apenas, outros disseram que pode enviar para qualquer domínio, exceto os seus próprios.

 

Pode ser simplesmente que o endereço de e-mail está sendo rejeitado, mas outras configurações do servidor SMTP estão impedindo a verdadeira mensagem de erro de ser retransmitida de volta para o script ASP ... assim verificar que o endereço é válido.

 

Se você tiver um firewall ou proxy, certifique-se o servidor web está configurado corretamente para passar por ele, que o servidor SMTP sabe sobre ele, e que o proxy permite o acesso a porta 25.

 

Tente usar um valor SendUsing de 1 (pickup) em vez de 2 (port). Por exemplo:

 

.Item(cdoSendUsingMethod) = cdoSendUsingPort

 

mude para

 

.Item(cdoSendUsingMethod) = cdoSendUsingPickup

Compartilhar este post


Link para o post
Compartilhar em outros sites

Estou usando o mesmo formulário, e tenho um problema. Quando faço o cadastro e coloco um email (Gmail, Hotmail e Yahoo) ele finaliza o cadastro, mas não recebo os dados cadastrados.

O site está ho UOL Host, o suporte disse que é erro no código, preciso de uma luz.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pode ser também um email inválido dentro do seu loop. Verifique na sua lista se algum email está incorreto (sem arroba, sem ponto, etc). É recomendo também fazer o envio da news de forma paginada, e não tudo de uma única vez.

 

if InStr(email,"@")>0 and InStr(email,".")>0 then response.write "é email" else response.write "naao é email" end if

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.