繁体   English   中英

使用CRON时HTML电子邮件无法正确发送

[英]HTML Email not sending properly When using CRON

嗨,我正在使用codeigniter框架和CentOS。 我正在使用cron发送html电子邮件,它从cron调用了php文件,我使用ths命令从该文件调用了codegniter函数

system("elinks -dump http://localhost/mailsender/index.php/mail/send/$email_job_id/");

从中我生成一个html电子邮件。但是电子邮件html发送不正确。

当我在前景中查看emil的来源时,我可以看到(这只是表的一部分)

<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&quot;border:1px" solidblack;border-collapse:collapse;?="">
<tr>
    <td style="3D3D3D3D3D3D&quot;border:1px" solidblack;?="">Model</td>
    <td style="3D3D3D3D3D3D&quot;border:1px" solidblack;?="">Description</td>
    <td style="3D3D3D3D3D3D&quot;border:1px" solidblack;?="">Et</td>
    <td style="3D3D3D3D3D3D&quot;border:1px" solidblack;?="">Option Codes</td>
    <td style="3D3D3D3D3D3D&quot;border:1px" solidblack;?="">Order numbers</td>
    </tr>
    <tbody>

<tr><td style="3D3D3D3D3D3D&quot;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&quot;border:1px" so="li=3D" d="3D3D" bl="3D3D3D" ac="3D3D3D3D" k;="3D3D3D3D3D" ?="">205,402,4UB,7LG</td><td style="3D3D3D3D3D3D&quot;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>

使用系统链接和elinks是否有原因?

您可以通过CLI运行cronjob:

php path/to/index.php mail send "some_id"

您是否也尝试过使用wget或curl?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM