【问题标题】:HTML Email not sending properly When using CRON使用 CRON 时 HTML 电子邮件未正确发送
【发布时间】:2015-10-22 14:50:59
【问题描述】:

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

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

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

当我在 Outlook 中查看 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>

【问题讨论】:

    标签: php codeigniter email cron centos


    【解决方案1】:

    你使用 system 和 elinks 有什么原因吗?

    您可以通过 CLI 运行 cronjob:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-12-24
      • 2015-10-22
      • 1970-01-01
      • 2017-12-21
      • 1970-01-01
      • 1970-01-01
      • 2011-04-26
      相关资源
      最近更新 更多