0

这是我当前的代码:

当前代码

我想添加一些表格来更改电子邮件的设计,我对 PHP 和 ZEND 非常陌生,任何帮助都会非常感谢。

4

4 回答 4

1

正如 Mike Brant 所说,您可以创建 HTML 然后内联复制。但是,您需要确保使用正确的 mime 类型发送电子邮件,以便用户的电子邮件阅读器知道呈现为 HTML 而不是纯文本。这并不难,但我发现 PEAR mail 和 mail_mime 库确实让正在做的事情变得更容易和更明显。还有一些 3rd 方电子邮件 api,例如我在一个使用http://swiftmailer.org/的项目上取得了很好的成功

于 2012-07-26T15:54:53.413 回答
0

最好的开始方法是按照您想要的方式在 HTML 中布局您的电子邮件,然后复制到您的 HEREDOC 部分并用变量替换内容。

于 2012-07-26T15:51:16.940 回答
0

您可以使用 Zend_Mail 类 (Zend/Mail.php) 发送电子邮件。详细信息在下面的代码示例中:

$mail = new Zend_Mail();
$mail->setBodyText($bodyText);
$mail->setBodyHtml($bodyHtml);
$mail->setFrom($senderAddress, $senderLabel);
$mail->addTo($recipientAddress, $recipientLabel);
$mail->setSubject($subject);
$mail->send();

您可能有一个问题是如何将电子邮件(文本和 html)内容分配给 $bodyText 和 $bodyHtml。您可以创建几个 phtml 文件,一个用于 html 内容,另一个用于文本。请参阅下面的代码以了解如何实现此目的:

$this->view->fullname = "John Abc";
$this->view->emaildata = $data //Possibly an array of data from the db
$bodyText = $this->view->render('emails/htmlemail.phtml')
$bodyHtml = $this->view->render('emails/textemail.phtml')

注意:此代码段应高于前一个代码段。

希望这能回答你的问题。快乐编码:)

于 2012-07-27T16:14:57.707 回答
0
  • 为您的电子邮件创建一个 (zend) 布局,就像为您的网站所做的那样。最好使用 html 4.0 文档类型。避免使用 CSS。大多数电子邮件客户端无法正确呈现它。如果您必须使用 CSS,请将其嵌入到样式标签中(没有外部内容)并将样式标签嵌入到正文中。(大多数网络邮件正在删除头部)。
  • 现在为您要发送的每种邮件类型创建视图(例如:注册,密码丢失,...)
  • 将变量分配给视图并将其渲染到布局中。将布局渲染到 Zend-Email 对象中。

如果您想通过管理区域管理内容、主题、发件人……,只需创建一个包含以下列的表:

  1. 类型(可以是注册,pw-Lost...)
  2. 主题
  3. 收件人(对于发给管理员的邮件,例如:当用户发表评论时)
  4. 抄送
  5. 密送
  6. Html-Text(带有用于个性化的占位符的电子邮件文本)
  7. 文本(包含占位符的可选纯文本)您可以将此文本附加到您的 html-Mail 或仅发送 html 或文本,具体取决于用户设置。
  8. 附件的一些额外列(可选)

现在您可以管理不同的邮件并删除您的视图(而不是布局)。

至少创建一个您可以通过这种方式访问​​的邮件类:

$mail = new My_Mail(My_Mail::PW_LOST);

$mail->bind($userData); // will replace the placeholders in the text

$mail->addTo(...);

$mail->send(); // will replace the placeholders in the text, renders the layout, Sends the mail.

代码示例: 如果您有兴趣,我可以在星期六提供代码示例

于 2012-07-26T20:42:19.090 回答