您好我使用的是codeigniter框架和CentOS。我正在使用cron发送一个html电子邮件,它从cron调用一个php文件,从文件中我使用ths命令调用一个codegniter函数
system("elinks -dump http://localhost/mailsender/index.php/mail/send/$email_job_id/");
从那里我生成一个HTML电子邮件。但电子邮件html没有正确发送。
当我在我的视野中查看埃米尔的来源时,我可以看到(这只是表格的一部分)
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">Please check the Type Extension list.<br><br><table cellpadding="3D3D3D3D3=" D3="3D" D?="3D3D" 10="3D3D3D" ?="3D3D3D3D" st="3D3D3D3D3D" yle="3D3D3D3D3D3D"border:1px" solidblack;border-collapse:collapse;?="">
<tr>
<td style="3D3D3D3D3D3D"border:1px" solidblack;?="">Model</td>
<td style="3D3D3D3D3D3D"border:1px" solidblack;?="">Description</td>
<td style="3D3D3D3D3D3D"border:1px" solidblack;?="">Et</td>
<td style="3D3D3D3D3D3D"border:1px" solidblack;?="">Option Codes</td>
<td style="3D3D3D3D3D3D"border:1px" solidblack;?="">Order numbers</td>
</tr>
<tbody>
<tr><td style="3D3D3D3D3D3D"border:1px" solidblack;?="">2E32</td><td style="3D3D=" 3D3D="3D" 3D3D="3D3D" ?bor="3D3D3D" der:="3D3D3D3D" 1px="3D3D3D3D3D" solidblack;?="">216D GRAN TOURER RHD</td><td style="3D3D3D3D3D3D"border:1px" so="li=3D" d="3D3D" bl="3D3D3D" ac="3D3D3D3D" k;="3D3D3D3D3D" ?="">205,402,4UB,7LG</td><td style="3D3D3D3D3D3D"border:1px" solidblack;?="">2=
20=3D
97=3D3D
23=3D3D3D
76=3D3D3D3D
</=3D3D3D3D3D></tr>
我的邮件发送功能
function send($id) {
$this->load->library('email');
$config['protocol'] = 'smtp';
$config['useragent'] = 'GSPL';
$config['smtp_host'] = 'smtp.***';
$config['smtp_user'] = '';
$config['smtp_pass'] = '';
$config['wordwrap'] = TRUE;
$this->email->initialize($config);
$this->email->from("***");
$this->email->reply_to("***");
$this->email->subject("***");
$this->email->set_mailtype("html");
$new_email_body = $this->create_email_body();
$data->body = $new_email_body;
$this->email->message($data->body);
$this->email->to("*****");
$this->email->send();
}
create_email_body函数将调用带有数据的视图
<table cellpadding="10" style="border:1px solid black;border-collapse: collapse;">
<tr>
<td style="border:1px solid black;">Model</td>
<td style="border:1px solid black;">Description</td>
<td style="border:1px solid black;">Et</td>
<td style="border:1px solid black;">Option Codes</td>
<td style="border:1px solid black;">Order numbers</td>
</tr>
<tbody>
<?php
foreach($result as $row)
{
echo '<tr><td style="border:1px solid black;">'.$row["model"].'</td><td style="border:1px solid black;">'.$row["description"].'</td><td style="border:1px solid black;">'.$row["et"].'</td><td style="border:1px solid black;">'.$row["option_codes"].'</td><td style="border:1px solid black;">'.$row["order_numbers"].'</td></tr>';
}
?>
</tbody>
<table>
有没有办法发送格式正确的HTML。提前谢谢。
注意
当我直接在浏览器中运行以下内容时,电子邮件的格式正确。
http://localhost/mailsender/index.php/mail/send/***/
我可以在outlook中看到表源
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">Please check the Type Extension list.<br><br><table cellpadding="10" style="border:1px solid black;border-collapse: collapse;">
<tr>
<td style="border:1px solid black;">Model</td>
<td style="border:1px solid black;">Description</td>
<td style="border:1px solid black;">Et</td>
<td style="border:1px solid black;">Option codes</td>
<td style="border:1px solid black;">Order numbers</td>
</tr>
<tbody>
<tr><td style="border:1px solid black;">ABCD</td><td style="border:1px solid black;">test</td><td style="border:1px solid black;">ABC</td><td style="border:1px solid black;">222,222,22</td><td style="border:1px solid black;">22222,22222,2222</td></tr> </tbody>
<table>
答案 0 :(得分:0)
你有没有理由使用系统和elinks?
您可以通过CLI运行cronjob:
php path/to/index.php mail send "some_id"
您是否也尝试过使用wget或curl?