Sistemas‎ > ‎Linux‎ > ‎Scripts Linux‎ > ‎Intranet‎ > ‎

enviarEmailAniversario.php

<?php
// ------------------------------------------------ //
// Desenvolvido por Sílvio Garbes Lara - 23-04-2016 //
// silviogarbes@gmail.com                           //
// ------------------------------------------------ //

/*
No cron
Com root execute "crontab -e"

#[minutos] [horas] [dias do mês] [mês] [dias da semana] [usuário] [comando]
30 5 * * * php /var/www/html/intranet/aniversario_email/email.php > /dev/null #Email Feliz Aniversario
*/

class mailSocket {
    public $server;
    public $port = "25";
    public $authenticate = FALSE;
    public $authenticateUser;
    public $authenticatePassword;
    public $mailFrom;
    public $mailTo;
    public $subject;
    public $header;
    public $body;
   
    function __construct() {
        //Aumenta o tempo de espera maximo
        set_time_limit(60);
    }
   
    function send(){
        // Tenta conectar
        $socket=fsockopen($this->server, $this->port, $errno, $errstr, 20);
        echo fgets($socket, 256); // Verifica se conectou - code 220
       
        if($this->authenticate){
            echo $msg = "EHLO ".$this->server."\r\n";
            fputs($socket, $msg);
            echo fgets($socket, 256); // code 250
           
            echo $msg = "AUTH LOGIN\r\n";
            fputs($socket, $msg);
            echo fgets($socket, 256); // code 334
           
            echo $msg = base64_encode($this->$authenticateUser) . "\r\n";
            fputs($socket, $msg);
            echo fgets($socket, 256); // code 334
           
            echo $msg = base64_encode($this->$authenticatePassword) . "\r\n";
            fputs($socket, $msg);
            echo fgets($socket, 256); // code 335
        }else{
            echo $msg = "HELO ".$this->server."\r\n";
            fputs($socket, $msg);
            echo fgets($socket, 256); // code 250
        }
       
        // E-mail Remetente
        echo $msg = "MAIL FROM: ".$this->mailFrom."\r\n";
        fputs($socket, $msg);
        echo fgets($socket, 256); // code 250
       
        // E-mail Destinatario
        echo $msg = "RCPT TO: ".$this->mailTo."\r\n";
        fputs($socket, $msg);
        echo fgets($socket, 256); // code 250
       
        // Pronto para envio
        echo $msg = "DATA\r\n";
        fputs($socket, $msg);
        echo fgets($socket, 256); // code 354
       
        // Cabecalho
        echo $msg = "From: ".$this->mailFrom."\r\n";
        fputs($socket, $msg);
        echo $msg = "To: ".$this->mailTo."\r\n";
        fputs($socket, $msg);
        echo $msg = "Subject: ".$this->subject."\r\n";
        fputs($socket, $msg);
       
        // Corpo
        fputs($socket, $this->header);
        fputs($socket, $this->body);
       
        // Finalizando envio
        fputs($socket, "\r\n.\r\n");
        echo fgets($socket, 256); // code 250
        fputs($socket, "QUIT\r\n");
       
        fclose($socket);
    }
}

function enviarEmailAniversario($destinatario){
    $mail = new mailSocket;
    $mail->server = "smtp.silviogarbes.com.br";
    $mail->mailFrom = "contato@silviogarbes.com.br";
    $mail->mailTo = $destinatario;
    $mail->subject = "Feliz aniversário";
    //$mail->header = "";
    //$mail->body = "";
   
    $limiter = "_=======". date('YmdHms'). time() . "=======_";
    $mail->header = "MIME-version: 1.0\r\n";
    $mail->header .= "Content-type: multipart/related; boundary=\"".$limiter."\"\r\n";
   
    // Codificar imagem para base64
    $fileName = "/var/www/html/intranet/aniversario_email/felizaniversario.jpg";
    $handle = fopen($fileName,'r');
    $contents = fread($handle, filesize($fileName));
    $encodedFile = chunk_split(base64_encode($contents));
    fclose($handle);
   
    $cid = date('YmdHms').'.'.time();
    $mail->body = "--".$limiter."\r\n";
    $mail->body .= "Content-type: text/html; charset=iso-8859-1\r\n";
   
    // Tem que ficar sem identacao e nao pode ter espaco no inicio de cada linha
    $html = "
<html>
<body>
<center>
<h2 style='color:blue;'>Silvio Garbes lhe deseja neste dia tão especial um</h2>
<img src=\"cid:".$cid."\">
</center>
</body>
</html>
";
   
    $mail->body .= $html;
    $mail->body .= "--".$limiter."\r\n";
    $mail->body .= "Content-type: image/jpeg; name=\"".$fileName."\"\r\n";
    $mail->body .= "Content-Transfer-Encoding: base64\r\n";
    $mail->body .= "Content-ID: <".$cid.">\r\n";
    $mail->body .= "\n".$encodedFile."\r\n";
    $mail->body .= "--".$limiter."--\r\n";
   
    $mail->send();
}

define("HOSTDB", "mysql01.silviogarbes.com.br");
define("USERDB", "intranet");
define("PASSDB", "senhadomysql");
define("NAMEDB", "aniversario");

$dbhandle = new mysqli(HOSTDB, USERDB, PASSDB, NAMEDB);
if ($dbhandle->connect_error) {
  exit("Sem conexão: ".$dbhandle->connect_error);
}
$strQuery = "SELECT email FROM colaborador WHERE data = curdate() AND email <> ''";
$result = $dbhandle->query($strQuery) or exit("Erro codigo ({$dbhandle->errno}): {$dbhandle->error}");
if ($result) {
    while($row = mysqli_fetch_array($result)) {
        $email = $row['email'];
        //$email = "silviogarbes@gmail.com.br";
        enviarEmailAniversario($email);
    }
}
$dbhandle->close();

?>
Comments