我在codeigniter中使用phpMailer库来发送HTML电子邮件,
在这个库中,我需要加载内容,然后将其传递给某个函数,
我只发现以下方法从库中的视图加载视图作为字符串来分配电子邮件'body',
function send_mail($data=array()) {
$mail = new PHPMailer(true);
$this->CI =& get_instance();
$body = $this->CI->load->view('partials/email_template', $data, true);
//setting third parameter to true will convert view to string,
}
电子邮件正在正确发送,但是当没有图像时,它只是因为字符串不能包含图像,如果我没有错,是否有任何替代方法来实现这一点。
编辑
独立于框架, 我正在加载内容,
$body = file_get_contents('email_template.html');
但是,这在框架中不起作用,
$body = file_get_contents($this->CI->load->view('partials/email_template', $data));
//even setting the third parameter 'true'
并返回“Message body empty”错误..
非常感谢...
答案 0 :(得分:0)
因为电子邮件是在线的,所以它不能只使用相对网址,而且需要是绝对的(例如http://website.co.uk/partials/email_template/image.png
)。
这是因为收到电子邮件的客户显然不会将这些文件放在他们的计算机上(或者非常值得怀疑)。
答案 1 :(得分:0)
$body = $this->CI->load->view('partials/email_template', $data,true);
这会将视图文件内容分配给变量$body