Enviar e-mails em massa

Estou desenvolvendo uma aplicação para envio de e-mails em massa utilizando o sc_mail_send, onde o usuário vai acessar uma grid com a lista de emails e então ele seleciona os emails que quer enviar podendo até selecionar todos, então criei um botão enviar e-mail onde é redirecionado para uma aplicação de controle que pega todos os e-mails selecionados e envia só que só funciona quando envio poucos emails uns 30 mais ou menos mais eu tenho na base de dados uns 200 emails cadastrados então quando seleciono todos os emails não são enviados é retornado erro.
Por favor me ajudem ficarei muito agradecido pela colaboração pois estou precisando muito, vou adicionar o código abaixo.

Código de envio de email

//Pegando os dados do servidor de e-mail
$check_sql = “SELECT * FROM config_servidor_email cs
WHERE cs.ce_id = 1”;
sc_lookup(rs, $check_sql);

if (isset({rs[0][0]})){

$smtp_server_porta     = {rs[0][1]};
$smtp_server_mail      = {rs[0][2]};
$smtp_server_remetente = {rs[0][3]};
$smtp_server_user      = {rs[0][4]};
$smtp_server_senha     = {rs[0][5]};
$smtp_server_titulo    = {rs[0][6]};

}

$check_sql = ‘SELECT FIL_EMAIL, FIL_NOME
FROM FILIACAO
WHERE selecionado = “1”’;

sc_select(rs, $check_sql);

//initialize the field
{mensagem_original} = {mensagem};
if (false == {rs}) // Error while accessing database
{
sc_error_message(‘Error while accessing database.’);
}
else{
while(!$rs->EOF) {
//{field_total} += $rs->fields[0];
echo ‘’;
sc_

	{mensagem} = str_replace("**associado**", "".$rs->fields[1]."", {mensagem_original});

	// Email parameters
	$mail_smtp_server    = ''.$smtp_server_mail.'';        // SMTP server name or IP address
	$mail_smtp_user      = ''.$smtp_server_user.'';                   // SMTP user name
	$mail_smtp_pass      = ''.$smtp_server_senha.'';                // SMTP password
	$mail_from           = ''.$smtp_server_titulo.'<'.$smtp_server_remetente.'>';          // From email
	$mail_to             = ''.$rs->fields[0].'';         // To email
	$mail_subject        = ''.{assunto}.'';            // Message subject
	$mail_message        = ''.{mensagem}.' <br><br>
	Att.;<br><b>TecnoGestor - Gestão Sindical</b>'; // Message body
	$mail_format         = 'H';                       // Message format: (T)ext or (H)tml
	$mail_copies         = '';                        // List of the emails that will recieve the message
	$mail_tp_copies      = '';                        // Type copies: BCC (Hiden copies) or CCC (Regular copies)
	$mail_port           = ''.$smtp_server_porta.'';                       // Server port
	$mail_tp_connection  = 'S';                       // Connection security (S) or (N)

	// Send email";
	sc_mail_send($mail_smtp_server,
				 $mail_smtp_user,
				 $mail_smtp_pass,
				 $mail_from,
				 $mail_to,
				 $mail_subject,
				 $mail_message,
				 $mail_format,
				 $mail_copies,
				 $mail_tp_copies,
				 $mail_port,
				 $mail_tp_connection);   

			$rs->MoveNext();
		}
    echo '<script>alert("Os -emails foram enviados com sucesso.\nEles podem demorar alguns minutos para chegar na caixa de entrada ou na caixa de SPAN.")</script>';

	$rs->Close();

sc_redir(grid_lista_emails_geral);

}

Assistiu webinar recente sobre uso de api com SC?

Veja se não é o ítem 26 -> http://www.scriptcase.com.br/forum/index.php?topic=13927.0
Principalmente os 3 links onde comento sobre o envio de e-mails.

Não funciona o link mais poderia atualizar alguém to tentando também e queria enviar emails de 200 por hora media.

Bom dia,

voce tem que criar uma de enviar esse emails em lotes pequenos.

Se quiser usar email em lote vai ter que integrar com um serviço especializado, exemplo: mailgun, sendgrid.

Mas se quiser enviar do seu proprio smtp vai ter que enviar em pequenos lotes.

Cria uma tabela com o conteudo do email destinatário , horario para envio, enviado_em. e faz os disparos usando uma aplicação blank.

Depois cria um job para rodar a sua aplicação de x em x tempo.

Lembra de não enviar muitos emails 10 no maximo por execute. e coloca para executar a cada minuto.

Isso deu certo pra mim e não trava.

Mas se você estiver usando o gmail ou hotmail no smtp, essas plataformas maiores tem limite de envio de emails. Justamente para você não utilizar para essas finalidades.

2 Curtidas