+ Responder ao Tópico



  1. #1

    Padrão Script para mandar email um por um???

    Olá galera,

    Tenho postfix instalado e configurado aqui na empresa. Agora preciso de um script que envie emails em massa, sendo um por um.

    Esses emails que eu irei mandar, estão dentro de um arquivo "email.txt".

    Alguem pode me ajudar?

  2. #2

    Padrão Re: Script para mandar email um por um???

    Isto pode ser utilizado para SPAM, por isto, creio que não irão ajudá-lo.
    Mas se você realmente precisa... pode dar uma conferida no site do php (www.php.net).
    Seguem as funções necessárias para o que você pretende fazer..

    http://www.php.net/manual/en/function.readfile.php
    http://www.php.net/manual/en/function.explode.php (talvez não seja necessária.. depende do formato do seu arquivo)
    http://www.php.net/manual/en/function.mail.php

    Espero que seja para fins benéficos.. Por não ter certeza de tal, postei apenas os links para pesquisa. Afinal, não é algo tão complicado.
    Bom trabalho.

  3. #3

    Padrão Re: Script para mandar email um por um???

    Na verdade é para newsletter personalizada.

    Vou criar vários arquivos com alguns emails (por grupo).

    tipo (departamentos: contabilidade, administração, dpt pessoal, fiscal...).


  4. #4
    Walfredo
    Visitante

    Padrão Re: Script para mandar email um por um???

    conseguiu resolver o problema?

  5. #5

    Padrão Re: Script para mandar email um por um???

    Resolvi sim,

    Esse é o script:

    for recebedor in $(< arq/de/ips)
    # o mesmo que:
    #+ for recebedor in $(cat arq/de/ips)
    #+, porem + rapido
    {
    mail -s "assunto" $recebedor < arq/de/texto
    }

  6. #6

    Padrão Re: Script para mandar email um por um???

    pode ser em php ? tenho um pronto usando a fun&#231;&#227;o mail, buscando os e-mails de um banco mysql... &#233; bem simples...
    (detalhe que precisa ter o relay aberto para o ip ou rede) pois nao tem como vc se autenticar usando funcao mail.

    se precisar avisa ai que posto aqui.
    :-D

  7. #7

    Padrão Re: Script para mandar email um por um???

    PARA djhulk;

    po se tu me conseguir esse em php eu te agradeço.

    valeu

  8. #8

    Padrão Re: Script para mandar email um por um???

    Esta &#233; a vers&#227;o autenticada usando perl...

    Código :
    <?
    include("Mail.php");
     
    $sql = mysql_query("SELECT campo FROM tabela");
    while($dados = mysql_fetch_array($sql)){
    	$emails[] = $dados[0];
    }
     
    $params["host"] = "mail.provedor.com.br";
    $params["port"] = "25";
    $params["auth"] = true;
    $params["username"] = "[email protected]";
    $params["password"] = "senha";
     
    $msg = "<pre>";
    $msg .= "<center>E-MAIL TESTE";
    $msg .= "SEU TEXTO</center>";
    $msg .= "</pre>";
     
    //Create the mail object using the Mail::factory method
    $mail_object =& Mail::factory("smtp", $params);
     
    $headers["From"] = "[email protected]";
    $headers["Subject"] = "Assunto";
    $headers['Content-Type'] = "text/html; charset=iso-8859-1";
     
    for($i=0; $i<count($emails); $i++){
    	echo "[".date("d/m H:i")."] <b>Enviando e-mail para: </b>".$emails[$i]."<br>";
    	echo "<script> currentpos=window.pageYOffset+50; window.scroll(0,currentpos)</script>";
    	flush();
    	$mail_object->send($emails[$i], $headers, $msg);
    	sleep(2); // serve para esperar um tempo antes de enviar o proximo e-mail
    }
    	echo "<font color=red><b>OK, Terminado!</b></font>";
     
    ?>

    Aproveitem :-D
    by Eduardo Luis Miliorini

  9. #9

    Padrão Re: Script para mandar email um por um???

    esta é a versao usando a funcao mail do php,

    eu não testei ela, pq tive que fazer algumas alterações, se der erro me avisa ai.

    Código :
    <?
    $sql = mysql_query("SELECT campo FROM tabela");
    while($dados = mysql_fetch_array($sql)){
    	$emails[] = $dados[0];
    }
     
    // corpo do e-mail
    $msg = "<pre>";
    $msg .= "<center>E-MAIL TESTE";
    $msg .= "SEU TEXTO</center>";
    $msg .= "</pre>";
     
    // nem preciso dize nada
    $remetente = "[email protected]"; // email do remetente
    $assunto = "Voce foi escolhido"; // assunto
     
    // os cabecalhos da msg
    $headers1 .= "MIME-Version: 1.0\n"; 
    $headers1 .= "Content-type: text/html; charset=iso-8859-1\n";
    $headers1 .= "From: ".$remetente."\n"; 
     
    for($i=0; $i<count($emails); $i++){
    	echo "[".date("d/m H:i")."] <b>Enviando e-mail para: </b>".$emails[$i]."<br>";
    	echo "<script> currentpos=window.pageYOffset+50;   window.scroll(0,currentpos)</script>";
    	flush();
    	mail($emails[$i],$assunto,$msg,$headers1)or die("Erro de smtp"); 
    	sleep(2); // serve para esperar um tempo antes de enviar o proximo e-mail
    }
    	echo "<font color=red><b>OK, Terminado!</b></font>";
     
    ?>

    enjoy!
    by Eduardo Luis Miliorini

  10. #10
    Walfredo
    Visitante

    Padrão Re: Script para mandar email um por um???

    Citação Postado originalmente por djhulk
    esta é a versao usando a funcao mail do php,

    eu não testei ela, pq tive que fazer algumas alterações, se der erro me avisa ai.

    Código :
    <?
    $sql = mysql_query("SELECT campo FROM tabela");
    while($dados = mysql_fetch_array($sql)){
    	$emails[] = $dados[0];
    }
     
    // corpo do e-mail
    $msg = "<pre>";
    $msg .= "<center>E-MAIL TESTE";
    $msg .= "SEU TEXTO</center>";
    $msg .= "</pre>";
     
    // nem preciso dize nada
    $remetente = "[email protected]"; // email do remetente
    $assunto = "Voce foi escolhido"; // assunto
     
    // os cabecalhos da msg
    $headers1 .= "MIME-Version: 1.0\n"; 
    $headers1 .= "Content-type: text/html; charset=iso-8859-1\n";
    $headers1 .= "From: ".$remetente."\n"; 
     
    for($i=0; $i<count($emails); $i++){
    	echo "[".date("d/m H:i")."] <b>Enviando e-mail para: </b>".$emails[$i]."<br>";
    	echo "<script> currentpos=window.pageYOffset+50;   window.scroll(0,currentpos)</script>";
    	flush();
    	mail($emails[$i],$assunto,$msg,$headers1)or die("Erro de smtp"); 
    	sleep(2); // serve para esperar um tempo antes de enviar o proximo e-mail
    }
    	echo "<font color=red><b>OK, Terminado!</b></font>";
     
    ?>

    enjoy!
    by Eduardo Luis Miliorini
    eu ainda complementaria o cabeçalho com algumas coisas evitando assim que o email vá para a pasta de lixo eletronico...

    Código :
     
     
     
      $headers .= "X-Sender: Nome <[email protected]>\n";
      $headers .= "From: $nome $sobrenome <$email>\n";
      $headers .= "Reply-To:  Nome <[email protected]>\n";
      $headers .= "Date: ".date("r")."\n";
      $headers .= "Message-ID: <".date("YmdHis")."nome@".$_SERVER['SERVER_NAME'].">\n";
      $headers .= "Return-Path:  Nome <[email protected]>\n";
      $headers .= "Delivered-to:  Nome <[email protected]>\n";
      $headers .= "MIME-Version: 1.0\n";
      $headers .= "Content-type: text/html;charset=ISO-8859-9\n";
      $headers .= "X-Priority: 1\n";
      $headers .= "Importance: High\n";
      $headers .= "X-MSMail-Priority: High\n";
      $headers .= "X-Mailer: Nome do Programinha...!\n";



  11. #11

    Padrão Re: Script para mandar email um por um???

    Boa, so nao axo uma boa ideia colocar prioridades Altas.
    Valeu pela contribuição...

    &#91;]'s
    :-D

  12. #12
    Walfredo
    Visitante

    Padrão Re: Script para mandar email um por um???

    é que a minha intenção é evitar que ela vá parar no lixo eletrônico... como não sei exatamente quais filtros são aplicados nos servidores de email eu meio que tentei com todos estes campos criar a maior possibilidade de ir parar na caixa de entrada...

    outra coisa, esta idéia pra mim foi a melhor!!!
    sleep(2); // serve para esperar um tempo antes de enviar o proximo e-mail

    assim evita sobrecarregar o servidor

    já trabalhaei em um host e lá sempre orientáva-mos os clientes a enviarem suas news durante a noite onde a carga é bem menor. confesso que não conhecia o "sleep" mas é isto aí vivendo e aprendendo...