【问题标题】:Sending mail with css is not applying in zend用css发送邮件不适用于zend
【发布时间】:2011-11-28 06:39:07
【问题描述】:

我正在使用 zend。以下是我在 Action 中的一段代码

.......
 // create view object
                $html = new Zend_View();
                $html->setScriptPath(APPLICATION_PATH . '/layouts/scripts/');
                // assign values                

                $html->assign('OrderList', $this->view->OrderList);
                $html->assign('title', 'Package Slip');
                $html->assign('current_date', date("F d, Y"));

                // render view
                $bodyText = $html->render('test.phtml');  
                $mail = new Zend_Mail('utf-8');
                $mail->setBodyHtml($bodyText)
                ->setFrom('noreply@metalxplus.com', 'admin')
                ->addTo('dineshkumar.m@openwavecomp.in')
                ->setSubject('Test');
                $mail->send(); 
........

当我在发送邮件之前回显这个 $bodyText 变量时,我得到了带有 css 的完整页面。但是当我将它发送到邮件时,css 不适用。我必须在这里做什么?请指教

【问题讨论】:

    标签: php zend-framework zend-mail


    【解决方案1】:

    对于这个问题,我所做的是应用内联样式并且效果很好。

    【讨论】:

      【解决方案2】:

      首先,查看电子邮件的来源,看看电子邮件是否包含您期望的 CSS。如果您使用的是相对路径;这可能是问题的根源。例如,当您访问 //example.com/hello 上的页面时,“/css/style.css”之类的路径将被请求为“//example.com/css/style .css”。

      电子邮件客户端没有这种奢侈;它没有域名。您必须提供 CSS 的完整路径,即“http://example.com/css/style.css”。

      【讨论】:

        【解决方案3】:

        许多电子邮件客户端使用旧版本的 html,因此不尊重 css。例如,Gmail 不会尊重您添加到邮件中的任何 CSS。

        要查看输出,我建议使用 litmus 或 email on acid 来显示您的消息在一系列电子邮件客户端中的外观。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2018-01-20
          • 1970-01-01
          • 2017-06-27
          • 2011-04-01
          • 2013-07-28
          • 2012-05-07
          • 1970-01-01
          • 2011-03-03
          相关资源
          最近更新 更多