Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Olá pessoal
Desenvolvi um sisteminha simples de Newsletter q funcionava perfeitamente até ontem.
Hoje, ao fazer o envio, todos os e-mails enviados pra remetentes @hotmail.com estão voltando.
O sistema utiliza CDOSYS, e está hospedado no terra.
Cód:
----------------------------------------------------
'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")
'SMTP
objCDOSYSCon.Fields("http://schemas.microsoft.com/cdo/con...ion/smtpserver") = "mail-fwd"
'porta do SMTP
objCDOSYSCon.Fields("http://schemas.microsoft.com/cdo/con...smtpserverport") = 25
'porta do CDO
objCDOSYSCon.Fields("http://schemas.microsoft.com/cdo/con...tion/sendusing") = 2
'timeout
objCDOSYSCon.Fields("http://schemas.microsoft.com/cdo/con...nectiontimeout") = 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 = email@dominio.com.br
'e-mail do destinatário
objCDOSYSMail.To = email
'assunto da mensagem
objCDOSYSMail.Subject = assunto
'conteúdo da mensagem
'objCDOSYSMail.TextBody = conteudo
'para envio da mensagem no formato html altere o TextBody para HtmlBody
objCDOSYSMail.HtmlBody = conteudo
'objCDOSYSMail.fields.update
'envia o e-mail
objCDOSYSMail.Send
'destrói os objetos
Set objCDOSYSMail = Nothing
Set objCDOSYSCon = Nothing
----------------------------------------
Alguém me ajuda??
Gustavo, o suporte do Terra nunca ajuda, infelizmente.
Tenho contato com um funcionário do departamento de Ouvidoria. Enviei e-mail pra ele relatando o problema.
Ele disse q vai averiguar e q depois retorna.
Mas sua resposta foi ótima, uma vez q comprova q o problema não está no meu script, e sim, no servidor do Terra.
Qq novidade eu te aviso, e se você tiver alguma, me avisa tb??
Abraços,
Luciana
Oi Luciana,
é pelo jeito não é erro no código, porque o e-mail vai, só que é classificado como SPAM e volta. Só os do hotmail.
Se tiveres notícia me avisa...
Antes quando o terra usava o cdonts tudo era mais fácil, não entendi essa "evolução" do cdosys:
esse é o código que eu usei pra enviar a newsletter
Server.ScriptTimeout = 1000000
Set RS = Server.CreateObject("ADODB.Recordset")
Set RSBODY = Server.CreateObject("ADODB.Recordset")
SQL2 = "SELECT * from Settings"
RSBODY.Open SQL2, Conn, 1, 3
SQL = "SELECT Email FROM List"
RS.open SQL, conn
On Error Resume Next
Do While Not RS.eof
Set objCDOSYSMail = Server.CreateObject("CDO.Message")
Set objCDOSYSCon = Server.CreateObject ("CDO.Configuration")
objCDOSYSCon.Fields("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "mail-fwd"
objCDOSYSCon.Fields("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25
objCDOSYSCon.Fields("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
objCDOSYSCon.Fields("http://schemas.microsoft.com/cdo/configuration/smtpconnectiontimeout") = 30
objCDOSYSCon.Fields.update
Set objCDOSYSMail.Configuration = objCDOSYSCon
objCDOSYSMail.From = RSBODY("From_Email")
objCDOSYSMail.To = RS("Email")
objCDOSYSMail.Subject = Request("Subject")
If (Request("Format") = "Text") Then
objCDOSYSMail.TextBody = Request("Body")
Else
objCDOSYSMail.HTMLBody = Request("Body")
End If
objCDOSYSMail.Send
RS.movenext
Loop
Set objCDOSYSMail = Nothing
Set objCDOSYSCon = Nothingobs: não são repetidos no banco de dados, e existem e-mails inválidos no banco, mas são ignorados (eu acho) pelo comando On Error Resume Next
abraços!
Oi Gustavo
Realmente, essa migração pro CDOSYS foi uma porcaria, o CDONTS funcionava perfeitamente.
Qto ao seu cód, achei q com a instrução On Error Resume Next isso ficasse resolvido. No meu não tenho isso, e certamente tenho e-mails inválidos no bd. No CDONTS ele ignorava e seguia mandando. Pelo jeito, vou ter q por esse comando tb.
Olhei seu cód e achei essa diferença:
O meu tá assim:
while not (rs.eof) and not (rs.bof)
to mandando uma newsletter agora e já estão voltando os e-mails do hotmail...
pois é... agora eu não sei... while not (rs.eof) and not (rs.bof)
seria algo como faça enquanto rs não acabar e enquanto não começar?
Acho q sim, não tenho certeza.
To fazendo um teste agora mudando o smtpserver. Coloquei localhost, q me falaram q funciona tb.
Mas ainda não recebi nenhuma mensagem (fiz um bd só com e-mails meus para teste).
Me diga uma coisa: qtos e-mails você tem cadastrado na sua Newsletter?? você manda todos de uma única vez??
Eu tenho 17.000 e tenho mandado de 1.000 em 1.000....
eu mando pra 3.800 com aquele script, manda um de cada vez, sem espaço de tempo entre eles
demora uns 25min
acho que isso não é certo, mas...
agora eu percebi que não é só de hotmail...
alguns outros e-mails @dominio estão sendo classificados como spam também...
alguém no fórum sabe porque disso?
Tem que definir o host do SMTP, o hotmail e diversos outros usam esse parâmetro (que vai no cabeçalho do e-mail) para validar se pode ser ou não um SPAM, a falta dele já caracteriza como.
O Terra fornece esse: "mail-fwd"
Mas se eu colocar smtp.terra.com.br ele não vai dizer q muitos e-mails estão vindo do mesmo IP e tal e considerar prática de spam, a exemplo q acontece com alguns programas de mala-direta, onde temos q fornecer o smtp do servidor??
Nesse LINK tem alguns exemplos, alguns indicando como é o uso da autenticação de SMTP.
Salgado, obrigada pelo link.
Meu inglês é meio fraco, mas achei ali (se é q entendi) uma coisa super interessante e q eu estava correndo atrás: confirmação de recebimento!!
Seria apenas eu acrescentar essas linhas??
Const cdoSendUsingPickup = 1
Const cdoSendUsingPort = 2 'Must use this to use Delivery Notification
Const cdoAnonymous = 0
Const cdoBasic = 1 ' clear text
Const cdoNTLM = 2 'NTLM
'Delivery Status Notifications
Const cdoDSNDefault = 0 'None
Const cdoDSNNever = 1 'None
Const cdoDSNFailure = 2 'Failure
Const cdoDSNSuccess = 4 'Success
Const cdoDSNDelay = 8 'Delay
Const cdoDSNSuccessFailOrDelay = 14 'Success, failure or delay
Cara... o que o terra me disse é que só funciona se o smtp for "mail-fwd"
então não tem jeito?
Gustavo, como te falei ontem, entrei em contato com um contato q tenho lá dentro.
Hoje recebi ligação do suporte do Terra. Eles estão averiguando meu caso e me prometeram uma solução até amanhã.
Informei q to passando por isso com 3 domínios, e q tinha um amigo, no caso você, q tb tava com os mesmos problemas.
você quer me informar os teus domínios para eu passar pra ele tb??
Gustavo, boas notícias!!
Testei agora e já to recebendo no hotmail, só q como LIXO ELETRÔNICO, coisa q antes não acontecia.....
Mas já é um progresso. Tente aí e me diga.
é verdade...
hoje (29) a newsletter que eu enviei foi normalmente para hotmail...
só para alguns dominios de agência de publicidade voltaram como spam...
e para ig voltou tb como spam
mas já é um progresso... vo ver amanhã...
abs
olha o e-mail que eu recebi:
"
Pessoal, cuidem no envio... recebi 10 vezes o mesmo arquivo...
"
não sei mais o que fazer...
Comigo vai certinho, pegue meu script e faça um teste.
A única coisa é q o hotmail recebe como lixo eletrônico.
Gustavo, acrescentei a linha On Resume....., e no e-mail seguinte ao q ele "rejeitou como inválido", ele enviou duplicado.
Assim:
user1@hotmail.com
user2@hotmail.com
user3@hotmail.com
user@
user4@hotmail.com - esse aqui recebeu 2x o mesmo e-mail.
Qdo não tinha a linha On Resume, não dava isso. Tente aí.....
então deve ser algum problema no On Error Resume Next né?
mas como que eu vou ver todos e-mails inválidos? não tem como...
eu não posso testar... senão os assinantes vão ficar brabos recebendo muitos e-mails iguais
Luciana,
tu tem msn?
Tenho, vou te mandar pelo e-mail do teu site, ok??
ok
eu tenho um site hospedado no terra também... e ontem eu fui mandar a newsletter e voltou 500 e-mails do hotmail e msn...
o suporte do terra não esclarece nada... a única coisa que eles me falaram é que estão com problemas com o hotmail e que a culpa não era deles... vai entender.
esse semana ta sendo complicada... eu to com problema que alguns e-mails estão indo duplicados e até triplicados... segundo eles é pq tem e-mails invalido no meu bd, mas até peço ajuda se alguém souber o que pode ser, agradeço muito