Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
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++;
}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.
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.
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...
Y U N O não coloca a conexão fora do looping? o_____________________o'
>
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.
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:
São N variáveis que fazem esse processo ser lento.