Como enviar e-mails em massa, dentro dos limites de utilização do serviço de e-mail em ASP?

De Wiki
Ir para: navegação, pesquisa

NOTAS:

  • O envio de e-mail em massa caracterizado como Spam é expressamente proibido em nossa rede. Para saber mais sobre nossa Política Antispam, acesse: Posso enviar Spam para divulgar o meu domínio?
  • Para preservar a capacidade de entrega de mensagens, não permitimos o envio de mensagens em massa com características consideradas maliciosas ou abusivas. Para saber mais sobre as práticas e conteúdos não permitidos no envio de e-mail em massa, acesse: Política para Envio de Emails em Massa

A seguir, apresentamos um exemplo de script ASP que faz o envio temporizado de 10 e-mails a cada 12 segundos, visando evitar o acúmulo de mensagens no Serviço de E-mail.


1º Passo: Crie o script ASP para enviar o envio dos e-mails, o arquivo deve se chamar mail_lotes.asp

<%

'## CONFIGURAÇÃO DOS E-MAILS (ASSUNTO, CORPO DE MENSAGEM, REMETENTE, E-MAIL DO REMETENTE)

assunto = "Envio de e-mail em Massa, temporizado"

mensagem = "Prezados "

mensagem = mensagem & "Este e-mail é um teste, simulando o envio de blocos de mensagens em períodos de tempo "

nome_remetente = "Seu Nome de Exibição"

email_remet = "Conta@SeuDomínio"


campos = "id, usuario, status"


'## Número de Mensagens enviadas por Blocos,

msg_num = 10


'## Tempo, em segundos, entre os Blocos de E-mail

sec = 12


'## FORNECENDO DADOS PARA CONEXÃO COM BANCO DE DADOS

Set objconn = Server.CreateObject("ADODB.Connection")

objconn.Open "usuario"

ok = 0

inicio = 0

fim = inicio + msg_num


sql = "SELECT " & campos & " FROM usuario WHERE status = 0 limit " & inicio & "," & fim

set dados = objconn.execute(sql) if dados.eof then

sql = "UPDATE usuario SET status = 0"
objconn.execute(sql)

%>

Envio de mensagens: O.K.

<%

ok = 1

end if


do while not dados.eof

id = dados("id")
para = dados("usuario")
status = dados("status")
remetente = nome_remetente & " <" & email_remet & ">"


' envia mensagem
SendTheMail(para, remetente, assunto, mensagem)


cmd = "UPDATE usuario SET status = 1 WHERE id = " & id
objconn.execute(cmd)

%>

<font face='tahoma'><%=id%> mensagem para <b><%=para%></b> <font color='#ff0000'>enviada com sucesso!</font></font><br>

<%

dados.movenext

loop


objconn.Close


if (ok = 0) then

%>

<meta http-equiv="refresh" content="<%=sec%>">

<%

end if


Function SendTheMail(para, remetente, assunto, mensagem)


Dim MyBody
Dim MyCDONTSMail


Const cdoSendUsingPort = 2


Set iConf = CreateObject("CDO.Configuration")
With iConf.Fields
.Item("http://schemas.microsoft.com/cdo/configuration/sendusing") = _
cdoSendUsingPort
.Item("http://schemas.microsoft.com/cdo/configuration/smtpserver") = _
"smtp.<seu_dominio>"
.Update
End With


Set objEmail = CreateObject("CDO.Message")
Set objEmail.Configuration = iConf
objEmail.From = remetente
objEmail.To = para
objEmail.Subject = assunto
objEmail.Textbody = mensagem
objEmail.send


End Function %>

NOTAS:

  • Substitua Conta@SeuDomínio por um endereço de e-mail válido de seu domínio, objconn.Open "usuario" pelos dados de conexão com o MySQL, conforme o exemplo.
  • Crie as tabelas 'id', 'usuario' e 'status' em sua base MySQL, ou informe o nome das tabelas respectivas na variável '$campos'


2º Passo: Publicação do arquivo:

Através do Gerenciador de Arquivos do Painel de Controle do seu domínio, ou utilizando um Cliente de FTP, publique o arquivo mail_lotes.asp na raiz do seu domínio ou em um diretório de sua preferência.