【问题标题】:html email message in codeigniter/phpcodeigniter/php 中的 html 电子邮件
【发布时间】:2012-04-28 22:20:45
【问题描述】:

这必须很简单,我正在尝试使用 CodeIgniter 将视图文件加载为我的电子邮件消息。关键是要有一个 HTML 而不仅仅是基于文本的消息。

目前,我的电子邮件发送正常,但如果我的代码如下所示,则消息为空:

这是php的相关部分:

    $config=array(
    'protocol' => 'smtp',
    'smtp_host' => 'xxx',
    'smtp_user' => 'xxx',
    'smtp_pass' => 'xxx',
    'smtp_port' => 587,
    'mailtype' => 'html',
    'crlf' => "\r\n",
    'newline' => "\r\n"
  );
 $this->email->initialize($config);
 $this->email->subject('testing loading a view file');
 $msg = $this->load->view('reviews/email', '', false);
 $this->email->message($msg);

reviews/email.php 文件如下所示:

<html>
<head></head>
    <body> <h1>this should be BIG</h1> this should not
          <a href="http://google.com/<? $php='login'; echo $php?>">Google</a>
    </body>
</html>

感谢您的任何建议,

提姆

【问题讨论】:

    标签: php email codeigniter smtp html-email


    【解决方案1】:

    您正在错误地加载视图。第三个参数应该是TRUE,以便CodeIgniter 将视图作为字符串返回。

    $msg = $this->load->view('reviews/email', '', true);
    

    来自http://codeigniter.com/user_guide/general/views.html

    还有第三个可选参数可以让你改变 函数,以便它将数据作为字符串返回而不是发送 它到您的浏览器。如果您想处理数据,这可能很有用 某种程度上来说。如果将参数设置为 true(布尔值),它将返回 数据。默认行为是 false,将其发送到您的浏览器。 如果要返回数据,请记住将其分配给变量:

    $string = $this->load->view('myfile', '', true);
    

    【讨论】:

    • 嗨 Kemal,感谢您的建议,这很有效。虽然我的目的是关键部分,但将 php 代码添加到链接中却没有。你能想到为什么这不起作用:&lt;a href="http://google.com/&lt;? $php='login'; echo $php?&gt;"&gt;google login&lt;/a&gt;
    • @timpeterson 它到底是怎么不工作的?字符串login 没有输出吗?另外,如果你只是回显字符串会不会容易得多?我看不出为什么你应该首先将它存储在一个变量中。事实上,没有必要使用 PHP 打印字符串。纯 HTML 可以正常工作(假设它总是一样的)。
    • 抱歉,它确实有效,因为单击链接会将您带到适当的 URL。我很困惑,因为如果你将鼠标悬停在链接上,它会显示一个指向我的电子邮件服务器的 URL,后跟很多随机字符,例如:http://email.mysite.com/adfas73j3j3jd-adsfdfk。但是,是的,如果您单击它,它会将您带到mysite.com/login。这很奇怪,你明白为什么会这样吗?
    • 这可能是因为电子邮件服务器软件。也许这是一种追踪外来访客的方式。但我不太确定,所以你可能想用谷歌搜索一下。
    • 嗨 Kemal,你是对的,我检查了我的邮件服务器 sendgrid.com,顺便说一句,这是一个非常好的服务,这些随机字符是用于链接跟踪目的的 URL 标记化。
    猜你喜欢
    • 1970-01-01
    • 2017-09-22
    • 1970-01-01
    • 2011-09-10
    • 2014-08-26
    • 1970-01-01
    • 2016-01-18
    • 1970-01-01
    • 2013-08-02
    相关资源
    最近更新 更多