enviando e-mail do cron em formato html e não em texto

1

Estou tentando enviar email a cada 1 hora do trabalho cron , que está executando um script php que busca dados do banco de dados e é exibido em um formato de tabela.

eu tenho CentOs 6.1 onde eu criei o meu cron job.firstly eu instalei cronie do terminal yum install cronie . então eu digito crontab -e e abre o editor VI

ai eu coloquei meu cron com um MAILTO como

MAILTO="[email protected]"
10 * * * * php /var/www/html/myfile.php

enviando e-mails a cada 1h30min mas enviando um e-mail em um conteúdo de texto que eu não quero.

myfile.php

<?php 
$con=mysql_connect("localhost","root","");
mysql_select_db("dbname",$con);
$to="[email protected]"
$subject = 'Count User Login And Application';

//fetch between 06:00:00 to 08:30:00   09:00:00 to 10:00:00
$date=array('06:00:00','09:00:00');
$date1=array('08:30:00','10:00:00');

$msg  = '<html><head>';
$msg .='<title>Some Title</title>';
$msg .='</head>';
$msg .='<h1>Test User</h1>';
$msg .='<table border="1" cellspacing="1">';

$msg .=  "<tr>";
$msg .=  "<th>start time</th>";
$msg .=  "<th>end time</th>";
$msg .=  "<th>Count</th>";

$count=count($date);
for($i=0;$i<$count;$i++){

$sql="SELECT count(*) AS test FROM table_name WHERE DATE_FORMAT(sys_time,'%H:%m:%i') BETWEEN DATE_FORMAT(sys_time,'$date[$i]') AND  DATE_FORMAT(sys_time,'$date1[$i]') ";
$query=mysql_query($sql);

if(!$query){
die('could not connect'.mysql_error());}


while($row=mysql_fetch_array($query)) {

$msg .=  "<tr>";
$str=$row['test'];
$subcategory = explode(',', $str);
foreach($subcategory as $value) 
{
    $msg .=  "<td>" . $value . "</td>";
 }
$msg .=  "</tr>";
  } 
}
$msg .=  "</table>";      
$msg .=  "</html>";

// To send HTML mail, the Content-type header must be set
$headers  = 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
mail($to, $subject, $msg);
?> 

como eu estou usando simples mail() em php com headers para renderizá-lo em html , mas meu cron está enviando e-mail em formato de texto e não em formato html.

Estou tentando obter e-mails em formato de tabela, como um do navegador, mas estou entrando em formato de texto.

é possível obter email em formato html a partir do cron

quaisquer outras possibilidades são sempre bem-vindas.Tentei todos os ifs e buts que posso obter do google, mas não consigo encontrar uma maneira de trabalhar.

    
por hitlooser 08.07.2014 / 16:17

2 respostas

1

De acordo com as respostas não aceitas para uma pergunta semelhante , isso depende da versão do cron que você está executando.

Verifique man 5 crontab se a configuração das variáveis CONTENT_TYPE e / ou CONTENT_TRANSFER_ENCODING for suportada para alterar a partir do texto simples padrão.

AFAIK no cronie no RHEL 6 é e se a saída do script for formatada em HTML, o seguinte deve funcionar no seu crontab:

MAILTO="[email protected]"
CONTENT_TYPE="text/html; charset=iso-8859-1"
10 * * * * php /var/www/html/myfile.php
    
por 08.07.2014 / 16:42
0

Eu uso o mutt para enviar a saída do cron como HTML

... <cron command> | mutt -e 'set content_type=text/html' -s "Subject" [email protected] -b [email protected]

    
por 04.05.2018 / 21:04