Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Olá
Tenho problemas com uma newsletter usando o componente de email CDOSys...ele retorna que a página não pode ser exibida, sem a definição do erro...
Veja o código
<%
' Declaring variables
Dim rs, mail, subject, message, data_source, sql_select, no
no = 0
subject = Request.Form("subject")
message = Request.Form("message")
' Adding a link to all messages by which users can delete their
' emails if they would want later
message = message & vbcrlf & vbcrlf
message = message & "Se não desejar receber nossos e-mails, clique aqui :"
message = message & vbcrlf
' ************************************** ALTERAR A LINHA DE BAIXO *****************************************************************************
message = message & "http://www.tsinet.com.br/newsletter/deletar.asp?email="
sql_select = "select email from users"
data_source = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & _
Server.MapPath("mail.mdb")
' Check to see if you have not pressed the 'send' button mistakenly
If Len(message) Then
' If you have written some message then lets send it
' You can use ASP Email component of your choice, here I will
' stick with CDO
Set rs = Server.CreateObject("ADODB.Recordset")
rs.Open sql_select, data_source
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/sendusing") = 2
objCDOSYSCon.Fields("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25
objCDOSYSCon.Fields("http://schemas.microsoft.com/cdo/configuration/smtpconnectiontimeout") = 60
objCDOSYSCon.Fields.update
set objCDOSYSMail.Configuration = objCDOSYSCon
objCDOSYSMail.From = "vendas@tsinet.com.br"
objCDOSYSMail.To = rs("email")
objCDOSYSMail.Subject = subject
objCDOSYSMail.TextBody = message & rs("email")
objCDOSYSMail.Send
Set objCDOSYSMail = Nothing
Set objCDOSYSCon = Nothing
no = no + 1
rs.MoveNext
Wend
' When messages have been sent to all the users, exit
Response.Write "Email enviado a " & no & " usuários."
rs.Close
Set rs = Nothing
' Had you pressed the button mistakenly with text area empty, then
' redirect back to the HTML Form
Else
Response.Redirect "admin.htm"
End If
%>
Não, ele não é enviado.
Aliás, nem aparece a página de resposta!
Grato
Alexandre
Olha... como nao tenho o seu bd para testar aki.. testei apenas o código do CDOSYS
<%
' Declaring variables
Dim rs, mail, subject, message, data_source, sql_select, no
no = 0
subject = Request.Form("subject")
message = Request.Form("message")
' Adding a link to all messages by which users can delete their
' emails if they would want later
message = message & vbcrlf & vbcrlf
message = message & "Se não desejar receber nossos e-mails, clique aqui :"
message = message & vbcrlf
' ************************************** ALTERAR A LINHA DE BAIXO *****************************************************************************
message = message & "http://www.tsinet.com.br/newsletter/deletar.asp?email="
sql_select = "select email from users"
data_source = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & _
Server.MapPath("mail.mdb")
' Check to see if you have not pressed the 'send' button mistakenly
If Len(message) Then
' If you have written some message then lets send it
' You can use ASP Email component of your choice, here I will
' stick with CDO
Set objCDOSYSMail = Server.CreateObject("CDO.Message")
Set objCDOSYSCon = Server.CreateObject("CDO.Configuration")
objCDOSYSCon.Fields("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "localhost"
objCDOSYSCon.Fields("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
objCDOSYSCon.Fields("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25
objCDOSYSCon.Fields("http://schemas.microsoft.com/cdo/configuration/smtpconnectiontimeout") = 60
objCDOSYSCon.Fields.update
set objCDOSYSMail.Configuration = objCDOSYSCon
objCDOSYSMail.From = "vendas@tsinet.com.br"
objCDOSYSMail.To = "teste@teste.com.br"
objCDOSYSMail.Subject = subject
objCDOSYSMail.TextBody = message
objCDOSYSMail.Send
Set objCDOSYSMail = Nothing
Set objCDOSYSCon = Nothing
' When messages have been sent to all the users, exit
Response.Write "Email enviado a usuários."
' Had you pressed the button mistakenly with text area empty, then
' redirect back to the HTML Form
Else
Response.Redirect "admin.htm"
End If
%>
Apenas alterei o SMTPSERVER para localhost, pois com o que estava acusava erro de comunicação com o servidor.. e o e-mail do destinatário..
Recebi os e-mails sem problemas aki...
Verifique se não é algum erro da sua instrução SQL, ou como ocorreu comigo, de comunicação com o Server SMTP..
Abraços...
Bom...
Eu testei o localhost, mas o pessoal do Terra Empresas afirmou que seria ideal que eu colocasse mail-fwd, por causa da caixa de spam's dos provedores de email's....
Sobre o destinatário eu testei tirando o rs("email") por um email qualquer, continua dando erro...mas preferi manter o rs("email"), pois os destinatários deverão estar na minha base de dados...
Sobre as instruções SQL, conferi com os nomes, e eles batem certinho
Mas ele nao acusa nenhum erro ???
Simplesmente nao manda a msg ??
Ele redireciona para a pagina "admin.htm" ??
Qlqr erro no codigo ele acusa, mesmo que seja o menor deles....
Va testando por partes.... teste somente o SQL, depois somente o envio do e-mail.. e veja oq está ou não funcionando...
Abraços...
Descobri o erro!
É que o servidor do Terra Empresas está dando problemas...
Eu apertei 7 vezes seguidas o botão de enviar, e ele mandou a newsletter :rolleyes:
Mas, não sei é permitido neste tópico, mas outra dúvida. Coloquei o formato de envio do email como HTML, tudo certo. Mas o nessa parte do código existe:
message = message & "http://www.tsinet.com.br/newsletter/deletar.asp?email="
sql_select = "select email from users"
data_source = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & _
Server.MapPath("mail.mdb")
Eu precisaria colocar um <a href> lá dentro, mas me perco na horas das aspas, como proceder?
Muito Obrigado!
message = message & "<a href = 'http://www.tsinet.com.br/newsletter/deletar.asp?email='> Click Me! "
Abraços...
Hum...
Uma pergunta...
Eu tentei colocar
message = message & "<a href='http://www.tsinet.com.br/newsletter/deletar.asp?email='
sql_select = "select email from users"
data_source = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & _
Server.MapPath("mail.mdb")>Clique Aqui "
Porém deu erro...pois gostaria que somente a mensagem clique aqui, fosse na tela, pois ele fica assim Clique Aqui emailaserdeletado@teste.com.br
Grato
Alexandre
Mas o e-mail é enviado ou não ??