Envio de newsletter

3 views
Skip to first unread message

Daniel Peron

unread,
Mar 7, 2008, 9:05:05 AM3/7/08
to ph...@googlegroups.com
Olá pessoal!

Tenho um projeto aqui que precisa enviar uma mala direta para os usuários cadastrados +- 2x por semana. A base tem mais de mil cadastrados.

O problema é que no host onde está hospedado tem uma regra que limita o envio de emails em 200 por hora. Alguma sugestão para solucionar isso sem dar time out no script? Atualmente estou fazendo na mão, tendo q mudar o limit da busca toda hora...

 Tava querendo um script q desse esse intervalo ai poderia deixar ele rodando a noite..


Dese já agradeço.
[]'s

At.
Daniel Peron
CRIASOL - Desenvolvimento Web
Tel.: (31)9216-6995
E-mail / MSN: dan...@criasol.com.br

Pedro Henrique Fialho

unread,
Mar 7, 2008, 9:11:45 AM3/7/08
to ph...@googlegroups.com
Seta uma flag de envio no banco; aí vc pega os 200 primeiros e-mails que ainda não receberam a newsletter.

O trabalho maior vai ser clicar no botão de hora em hora pra enviar haha

2008/3/7 Daniel Peron <daniel...@gmail.com>:



--
Pedro Henrique Fialho de Souza
Ciência da Computação - UFJF
Tel: (32) 9994 0411
MSN: fial...@hotmail.com
ICQ: 323764499

Rodrigo Oliveira

unread,
Mar 7, 2008, 9:13:08 AM3/7/08
to ph...@googlegroups.com
pode usar sleep pra nao ter que ficar clicando de hora em hora..
da um sleep e depois um header location pra mesma pagina

 
Em 07/03/08, Pedro Henrique Fialho <fial...@gmail.com> escreveu:

Pedro Henrique Fialho

unread,
Mar 7, 2008, 9:21:00 AM3/7/08
to ph...@googlegroups.com
Mas aí não vai dar execution timeout não?

2008/3/7 Rodrigo Oliveira <r.ef...@gmail.com>:

Daniel Peron

unread,
Mar 7, 2008, 9:28:56 AM3/7/08
to ph...@googlegroups.com
Mas aí pra toda newsletter nova eu terei que editar a flag em todos os registros..

Em 07/03/08, Pedro Henrique Fialho <fial...@gmail.com> escreveu:
Seta uma flag de envio no banco; aí vc pega os 200 primeiros e-mails que ainda não receberam a newsletter.

Daniel Peron

unread,
Mar 7, 2008, 9:30:53 AM3/7/08
to ph...@googlegroups.com
Eis a questão.. Ja tentei o sleep e da time out..

Charles Schaefer

unread,
Mar 7, 2008, 9:36:57 AM3/7/08
to ph...@googlegroups.com
bota no cron pra rodar de hora em hora

2008/3/7 Daniel Peron <daniel...@gmail.com>:



--
Charles Schaefer - Web Developer
Email: charles...@gmail.com
Tels.: +55 31 9317-2862

ATENÇÃO: Não imprima este e-mail. A natureza agradece. E seu bolso também.
WARNING: Don't print this e-mail. The nature is thankful. And your money too.

Daniel Peron

unread,
Mar 7, 2008, 9:39:40 AM3/7/08
to ph...@googlegroups.com
cron?? Desconheço!

Em 07/03/08, Charles Schaefer <charles...@gmail.com> escreveu:

Fernando Henrique Amorim Fonseca

unread,
Mar 7, 2008, 9:46:03 AM3/7/08
to ph...@googlegroups.com
http://pt.wikipedia.org/wiki/Cron

Em 07/03/08, Daniel Peron <daniel...@gmail.com> escreveu:

Michael Mafort

unread,
Mar 7, 2008, 9:48:45 AM3/7/08
to ph...@googlegroups.com
So entrar no painel da dial (se este ai estiver la neh) e entrar em contato com o suporte que eles te orientam como proceder para rodar o php com o cron.

Em 07/03/08, Daniel Peron <daniel...@gmail.com> escreveu:
cron?? Desconheço!

Rodrigo Oliveira

unread,
Mar 7, 2008, 9:52:59 AM3/7/08
to ph...@googlegroups.com
inclusive roda mais rápido no cron...

Em 07/03/08, Charles Schaefer <charles...@gmail.com> escreveu:
bota no cron pra rodar de hora em hora

Michael Mafort

unread,
Mar 7, 2008, 10:51:06 AM3/7/08
to ph...@googlegroups.com
Ou então vc deixa de pao duragem e compra este sistema aqui, ele tem um gerenciador muito foda.

http://www.listmessenger.com/

Abraços,


Em 07/03/08, Fernando Henrique Amorim Fonseca <midiad...@gmail.com> escreveu:

Pedro Henrique Fialho

unread,
Mar 7, 2008, 11:04:35 AM3/7/08
to ph...@googlegroups.com
Nunca usei o Cron, mas pelo que já ouvi falar dele parece mais viável mesmo.

Mas, anyway


Mas aí pra toda newsletter nova eu terei que editar a flag em todos os registros..

UPDATE tabela set flg_enviado = 0  : )

2008/3/7 Michael Mafort <michae...@gmail.com>:

Anderson Unsonst

unread,
Mar 7, 2008, 11:57:32 AM3/7/08
to ph...@googlegroups.com
phpmailer + sleep + rotina no php para separar em grupo de emails, na quantidade que você pode enviar + instrução de tempo if for 13:00 faça isso se for 14:00 faça aquilo e assim por adiante

Charles Schaefer

unread,
Mar 7, 2008, 12:19:55 PM3/7/08
to ph...@googlegroups.com
ainda prefiro cron com "Select [...] where [ainda não enviado hoje] limit 200"

2008/3/7 Anderson Unsonst <anderso...@gmail.com>:

Michael Mafort

unread,
Mar 7, 2008, 12:59:33 PM3/7/08
to ph...@googlegroups.com
Listmessenger, um gerenciador completo.

Henrique de Castro

unread,
Mar 7, 2008, 1:10:08 PM3/7/08
to ph...@googlegroups.com
É melhor gravar um flag ou data no bd como já disseram... pois existe a possibilidade de dar um sleep e segurar o tempo que precisa, mas vai gastar processamento atoa.
Faz o select como o charles sugeriu lembrando da questão do valor no bd.. e usa o cron.. sobre o problema com timeout é só usar o set_time_limit

Em 07/03/08, Michael Mafort <michae...@gmail.com> escreveu:

Rodrigo Luiz

unread,
Mar 7, 2008, 1:12:21 PM3/7/08
to ph...@googlegroups.com
On 3/7/08, Daniel Peron <daniel...@gmail.com> wrote:
>
> Tava querendo um script q desse esse intervalo ai poderia deixar ele
> rodando a noite..

Já pensou na possibilidade de fazer um script e rodar na sua máquina,
aí local, ao invés de deixar rodando no servidor? Um script tipo shell
ou .bat, só que em PHP.

Você poderia fazer um script para conectar no banco, puxar os e-mails
a serem enviados, e enviar o e-mail localmente, informando apenas o
smtp do seu provedor. Acho até mais simples.

Tudo bem, gastaria um pouco de banda sua para enviar os e-mails. Pois
*particulamente* eu não sou favorável a por esses tipos de scripts em
cron.

--
[]'s
Rodrigo Luiz

GUS-MG ~ http://www.gus-mg.org
Grupo de Usuários Slackware de Minas Gerais

Charles Schaefer

unread,
Mar 7, 2008, 1:19:35 PM3/7/08
to ph...@googlegroups.com
Por que não gosta Rodrigo?

2008/3/7 Rodrigo Luiz <rodrig...@gus-mg.org>:

Rodrigo Luiz

unread,
Mar 7, 2008, 1:36:58 PM3/7/08
to ph...@googlegroups.com
On 3/7/08, Charles Schaefer <charles...@gmail.com> wrote:
> Por que não gosta Rodrigo?
>

Esses scripts tem que ser *muito* bem escritos. Todas as
possibilidades de erros tem que ser tratadas, pois timeouts podem
acontecer em diversos pontos do mesmo, já que envolve resolução de
DNS, conexão de banco, conexão de smtp etc etc...

E como ele irá saber por exemplo se foram enviados todos os e-mails
com sucesso? Um outro e-mail de confirmação (e se justamente o smtp
que estava fora do ar)? Todo script que roda em cron (ou background)
tem que ser escrito um pouco diferente antes de por em prática.

E dependendo da frequência com que ele coloque o script para rodar no
cron, o segundo script pode começar sem ao menos o primeiro tenha
terminado, por causa dos timeouts. Ai começa a bagunça.... ;-)

Por isso eu não prefiro utilizar o cron pra esse caso. Eu faria um
script e chamaria manualmente mesmo. E eu não teria problemas com
timeout do webserver, já que quem vai estar rodando o script é o meu
PHP, com todas as configurações personalizadas que eu preciso.

Mas dá pra por no cron sim, como eu disse no primeiro parágrafo: tem
que ser é bem escrito o script.

Charles Schaefer

unread,
Mar 7, 2008, 2:10:31 PM3/7/08
to ph...@googlegroups.com
ah saquei.
Isso é verdade. Não é a mesma coisa.

2008/3/7 Rodrigo Luiz <rodrig...@gus-mg.org>:

Rodrigo Oliveira

unread,
Mar 7, 2008, 5:59:06 PM3/7/08
to ph...@googlegroups.com
Ele usando o servidor SMTP nao adiantaria nada... pois o que trava no servidor nao é o php e sim o smtp, entao o php nao importa se está na maquina dele ou nao..

Em 07/03/08, Rodrigo Luiz <rodrig...@gus-mg.org> escreveu:

Rodrigo Luiz

unread,
Mar 8, 2008, 7:47:51 AM3/8/08
to ph...@googlegroups.com
On 3/7/08, Rodrigo Oliveira <r.ef...@gmail.com> wrote:
> Ele usando o servidor SMTP nao adiantaria nada... pois o que trava no
> servidor nao é o php e sim o smtp, entao o php nao importa se está na
> maquina dele ou nao..
>

Quanto a isso não tem como fugir. Ele *tem* quem usar algum servidor
SMTP, e de preferência de algum provedor. Pois se ele usar um SMTP que
estar utilizando conexão por banda larga, seja por velox, virtua etc
(no caso SMTP local), a maioria dos outros MTAs irão barrar as
mensagens dele alegando ser spam.

Por isso, ou ele faz um script pra driblar o SMTP dele mandando
e-mails por partes, ou ele troca de provedor, ou utlizar apenas o SMTP
de algum outro provedor.

E o que eu disse a respeito dele rodar o script localmente e de ter o
PHP na própria máquina era apenas UMA das vantagens, e não a única.

Michael Mafort

unread,
Mar 9, 2008, 11:43:55 AM3/9/08
to ph...@googlegroups.com
Pra evitar timeouts ele pode fazer um script em ajax para executar as requisições no php, assim não dá timeout e pode ser executados todos de uma vez com a regra de 200 por hora.

Em 08/03/08, Rodrigo Luiz <rodrig...@gus-mg.org> escreveu:
Reply all
Reply to author
Forward
0 new messages