【发布时间】:2014-07-15 03:38:58
【问题描述】:
我无法获取电子邮件中的 css,以下是 CakePHP 电子邮件功能:
function _sendMailUser($mailTo = array(), $mailFrom = array(), $repTo = array(), $mailSubject = null, $mailTemplate = null) {
App::uses('CakeEmail', 'Network/Email');
$email = new CakeEmail();
$email -> from($mailFrom);
$email -> bcc($mailTo);
$email -> replyTo($repTo);
$email -> subject($mailSubject);
$email -> template($mailTemplate);
$email -> emailFormat('html');
return $email -> send();
}
电子邮件模板:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="stylesheet" href="<?php echo HTTP_ROOT; ?>css/style.css" type="text/css" />
</head>
<body leftmargin="0" marginwidth="0" topmargin="0" marginheight="0" offset="0">
<center>
<?php echo $this -> fetch('content'); ?>
</center>
</body>
除了 CSS 之外,一切正常。我什至尝试在头部包含<style>....</style>,但没有成功。
【问题讨论】:
-
显示你的css代码。并且不要在电子邮件上链接 css 样式。您向哪个电子邮件服务提供商发送电子邮件?
-
没有得到 css,尝试了多个电子邮件提供商 Gmail、Yahoo 等...
-
我使用this 将内联样式和 CSS 转换为“内联 CSS”,这是最有效的 CSS 方法。这可以通过帮助回调发生,例如在实际将其传递给 Transport 类之前。
-
你应该使用内联样式。并非每个邮件客户端都支持标题和/或正文中的样式标签。
-
把完整的 URI 放到你的 css 文件:)