【发布时间】:2011-03-25 05:44:16
【问题描述】:
我正在使用 Zend_View 来模板文本电子邮件内容。但是,我遇到了一个我无法解决的问题:如果一行以 php 块 (?>) 结尾,则换行符丢失。
有人知道我该如何解决这个问题吗?
应用程序正在使用 Zend 框架,但我没有特别的理由使用 Zend_View 来呈现电子邮件模板(除了它看起来是最简单、最明显的方法),所以如果有替代解决方案,那就是不错。
我试过检查原始文本输出,换行符完全丢失了。看不到“\r”或“\n”,所以没有什么可以替换的了。
发送电子邮件的代码:
$emailView = new Zend_View(); $emailView->setScriptPath(realpath (FRONTEND_APPLICATION_PATH .'/../email/')); $bodyText = $emailView->render('recruitment-job-alert-text.phtml'); // $model = new Model_VacancyDetail(); // $model->find(1); // $emailView->vacancyDetail = $model; $mail = 新 Zend_Mail(); $mail->setSubject( '工作提醒:' . $model->references['vacancy_type'] ); $mail->addTo($fromEmail, $fromName); $mail->setFrom($fromEmail, $fromName); $mail->setBodyHtml($bodyHtml); $mail->setBodyText($bodyText); $邮件->发送();电子邮件模板内容:
标题:= $this->escape($this->vacancyDetail->references['vacancy_type']) ?> 位置:= $this->vacancyDetail->references['name'] ?> 部门:= $this->vacancyDetail->references['department_name'] ?> 需要驾驶执照:= ($this->vacancyDetail->requireDrivingLicence == 1) ? “是”:“不是”?> 工作时间:= $this->vacancyDetail->workingHours ?>。 好处:= $this->vacancyDetail->好处 ?>。 薪水:= $this->vacancyDetail->salary ?>。 细节: = strip_tags($this->vacancyDetail->description) ?> 现在申请 http://www.example.com/recruitment生成的电子邮件内容示例:
标题:示例空缺类型 地点:示例地点部门:示例部门要求驾驶执照:是工作时间:40。 福利:公司用车。 薪水:15,000英镑。 细节: 这是一个示例位置。它并不存在。 现在申请 http://www.example.com/recruitment【问题讨论】:
-
在 PHP 脚本查看时,电子邮件是否不显示换行符或文本没有换行符?即 var_dump($bodyText);死;在脚本中执行此操作然后查看源代码,换行符还在吗?如果是这样,那么就是邮件部分正在删除它,否则就是 zend_view。
-
它们在视图被渲染后不在那里,但在它们被放入 Zend_Mail 之前,所以它看起来像是 Zend_View 或 php 本身的问题(还没有查看到底如何文件由 Zend_View 渲染)
标签: php email zend-framework templates