Ir para conteúdo

POWERED BY:

Arquivado

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

SinoP

PHP + PHPMailer + MySQL para envio de e-mails em massa

Recommended Posts

Salve galera.

Criei um sistema de envio de e-mails em massa, porém estou com dificuldade para enviar de forma rápida.

No meu sistema você cadastra a lista de e-mails, cria o e-mail a ser enviado e faz o envio.

Eu estava enviando as mensagem sem autenticação SMTP e o sistema enviava 25 mensagens em 2 segundos, porém me limitava a 1000 mensagens diárias.

Agora eu contratei um plano da www.k2host.com.br de servidor SMTP ilimitado, configurei o PHPMailer e fiz o envio, o problema é que ele demora cerca de 5s para enviar cada mensagem, ou seja, pra mandar 1000 mensagens vou ficar esperando 1 hora e meia.

Já tentei de tudo e não consigo fazer ele enviar as mensagens de forma mais rápida.

Quem puder ajudar eu agradeço.

Assim que o sistema estiver 100% eu libero os códigos para download.

Esta ficando muito bom... só que tenho que melhorar ele para criar as listas de email e selecionar para qual lista será o envio.

 


//ISTO ESTA DENTRO DE UM WHILE QUE SELECIONA OS E-MAILS NO BANCO

$mail = new PHPMailer();

$mail->IsSMTP(); // evia por SMTP 
$mail->Host = "smtp.seuservidor.com.br"; // SMTP servers 
$mail->SMTPAuth = true; // Caso o servidor SMTP precise de autenticação 
$mail->Username = "email@seuservidor.com.br"; // SMTP username 
$mail->Password = "******"; // SMTP password 

$mail->Sender = "email@seuservidor.com.br"; // E-mail que envia
$mail->From = "emailqueaparececomoremetente@qualquerdominio.com.br"; // From 
$mail->FromName = utf8_decode("NOME DO REMETENTE"); // Nome de quem envia o email
$mail->AddReplyTo("emailquereceberespostas@qualquerdominio.com.br","NOME DO REMETENTE"); //Responder 

$remover = base64_encode($ret['id_mail']);

$mail->AddAddress("emaildequemrecebe@qualquerdominio.com.br","NOME DE QUEM RECEBE"); 
$mail->WordWrap = 500;
$mail->IsHTML(true);
$mail->Subject = "ASSUNTO DA MENSAGEM";
$mail->Body = "CORPO DA MENSAGEM"; 

//EFETUA O ENVIO E VERIFICA SE RETORNA SUCESSO OU NÃO
if(!$mail->Send()){
$erro++;
} else {
$sucesso++;
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Isso é relativo meu amigo. 1000 e-mails em 1 hora e meia está lento, acredito que dava para fazer em bem menos. Mas se você não está gerando o código limpo e sem redundâncias, o problema é o serviço da empresa onde você está hospedando, porque tem vários requisitos:

 

- Computador Dedicado que funcione com alta performace

- Um serviço de banda dedicado

 

São N variáveis que fazem esse processo ser lento.

Compartilhar este post


Link para o post
Compartilhar em outros sites

1000 emails por hora, dependendo do horario a empresa de hospedagem vai achar q é spam, geralmente tem algo descrito no contrato sobre horario de envio de campanha de markting e afins.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Esse email tem alguma personalização para cada destinatário?

 

Você pode tentar incluir vários senders de CCO em uma mesma mensagem e ver como fica.

Compartilhar este post


Link para o post
Compartilhar em outros sites

caro sinop

 

pelo que estou vendo em seu código a autenticação no servidor STMP está dentro do loop

 

portanto ... se o loop for de 1000 mensagens ele vai atenticar 1000 vzs.... pode ser isso que está fazendo o seu envio ficar lento.

 

o ideal seria autenticar para enviar X mensagens, depois de um tempo ele autenticaria de novo para enviar + X

 

e assim sucessivamente...

Compartilhar este post


Link para o post
Compartilhar em outros sites

caro sinop

 

pelo que estou vendo em seu código a autenticação no servidor STMP está dentro do loop

 

portanto ... se o loop for de 1000 mensagens ele vai atenticar 1000 vzs.... pode ser isso que está fazendo o seu envio ficar lento.

 

o ideal seria autenticar para enviar X mensagens, depois de um tempo ele autenticaria de novo para enviar + X

 

e assim sucessivamente...

 

Ja tentei fazer a autenticação antes de enviar o e-mail, mas o problema é que quando faço o envio e manda o X como numero de e-mails.

Tipo eu autentico e mando 10 depois autentico novamente e mando mais 10 mas o problema é que ele envia 10 newsletters para cada um destes 10 emails.

Não sei o porque deste problema.

 

Agora estou em busca de um servidor mais rápido, se alguém souber me informar eu agradeço.

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.