2012-07-26 48 views
0

这是我当前的代码:如何输入表HTML到PHP电子邮件代码

current code

,我想添加一些表来改变电子邮件的设计,我很新的PHP和ZEND的任何帮助将非常感谢。

+0

用四个空格前面加上你的代码的每一行,以便我们可以真正阅读它。实际上,另一种方式是使用 – Palladium 2012-07-26 15:47:22

+0

。 – Palladium 2012-07-26 15:49:11

+0

'table'是什么意思? – arkascha 2012-07-26 15:50:24

回答

0

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

+0

好的,我已经准备好了html,我只需要回显'

';?不在PHP的中间? – 2012-07-26 15:54:59

+0

我会把你的表格标签结构放在HTML文档中。或者,如果您使用PHP动态构建表格,则可以使用{$ table_html}或类似方法将其插入到HEREDOC中 – 2012-07-26 15:58:56

1

正如迈克布兰特所说,您可以创建您的HTML,然后以内联方式复制。但是,您需要确保电子邮件是使用适当的mime类型发送的,以便用户的电子邮件阅读器知道以HTML格式呈现而不是纯文本格式。这并不难,但是我发现PEAR邮件和mail_mime库确实使得它更容易,更明显地做了什么。也有一些第三方的电子邮件的API,例如我已经使用http://swiftmailer.org/

0
  • 为您的电子邮件一个(Zend公司)布局就像你为你的网站做一个项目良好的成功。最好使用html 4.0 doctype。避免使用CSS。大多数电子邮件客户端无法正确呈现它。如果您必须使用CSS,请将其嵌入到样式标签(无外部内容)中,并将style-Tag嵌入到主体中。 (大多数网络邮件服务器正在丢弃头部)。
  • 现在为要发送的每个邮件类型创建视图(例如:注册,pw-lost,...)
  • 将变量分配给视图并将其呈现到布局中。将布局呈现为Zend-Email对象。

如果你要管理的内容,主题,发件人,...在一个行政区域,只需要创建一个表具有以下colums:

  1. 型(可以注册,PW-输了...)
  2. 主题
  3. (对于被不客气的管理如邮件:当用户发表评论)
  4. CC
  5. 密件抄送
  6. HTML的文本
  7. 文本可以additionaly包本文向您(含占位可选纯文本)HTML的邮件,或只是(与e-Mail与占位为personalzation文本)发送html或文本取决于用户设置。
  8. 一些额外colums的附件(可选)

现在你可以adminster不同的邮件,放下你的观点(而不是布局)。

至少创建邮件类,你可以以这种方式访问​​:

$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. 

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

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。您可以为html内容创建一对phtml文件,另一个用于创建文本。请参阅以下代码以了解如何实现此目的:

$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') 

注意:此代码段应该位于前一个代码段的上方。

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

相关问题