我正在生成一封电子邮件,我注意到我的一些内联CSS样式显示不正确。经过进一步的研究,似乎我的输出在整个字符串中随机地得到了换行。以下是PHP中发生换行的部分
<?php
$message .= '<ul style="list-style:none">';
foreach ($fileLinks as $key => $value)
{
$message .= '<li><a style="font-family:sans-serif;background:#1F6FA9;color:#fff;padding:5px;text-decoration:none;border-radius:3px;margin-bottom:10px;display:inline-block;" href="' . $value . '">Download ' . $fileNames[$key] . '</a></li>';
}
$message .= '</ul>';
?>这一切在我看来都很好
字符串正在中断并转到一个新的行中,使我的内联css变得混乱的一个例子是(我添加了行号以便于阅读):
1. <ul style="list-style:none">
2. <li><a style="font-family:sans-serif;background:#1F6FA9;color:#fff;padding:5px;text-decoration:none;border-radius:3px;margin-
3. bottom:10px;display:inline-block;" href="http://myserver.com/file-transfer/download.php?i=Li4vdXBsb2Fkcy8wNi0xMi0yMDE1L2JnLmpwZw==">Download bg.jpg</a></li>
4. <li><a style="font-family:sans-serif;background:#1F6FA9;color:#fff;padding:5px;text-decoration:none;border-radius:3px;margin-bottom:10px;display:inline-block;" href="http://myserver.com/file-transfer/download.php?i=Li4vdXBsb2Fkcy8wNi0xMi0yMDE1L3NsaWRlMS5qcGc=">Download slide1.jpg</a></li>
5. <li><a style="font-family:sans-serif;background:#1F6FA9;color:#fff;padding:5px;text-decoration:none;border-radius:3px;margin-bottom:10px;display:inline-block;" href="http://myserver.com/file-transfer/download.php?i=Li4vdXBsb2Fkcy8wNi0xMi0yMDE1L3NsaWRlMS5wZGY=">Download slide1.pdf</a></li>
6. <li><a style="font-family:sans-serif;background:#1F6FA9;color:#fff;padding:5px;text-decoration:none;border-radius:3px;margin-bottom:10px;display:inline-block;" href="http://myserver.com/file-transfer/download.php?i=Li4vdXBsb2Fkcy8wNi0xMi0yMDE1L3NsaWRlMi5qcGc=">Downlo
7. ad slide2.jpg</a></li>
8. <li><a style="font-family:sans-serif;background:#1F6FA9;color:#fff;padding:5px;text-decoration:none;border-radius:3px;margin-bottom:10px;display:inline-block;" href="http://myserver.com/file-transfer/download.php?i=Li4vdXBsb2Fkcy8wNi0xMi0yMDE1L3NsaWRlMi5wZGY=">Download slide2.pdf</a></li>
9. <li><a style="font-family:sans-serif;background:#1F6FA9;color:#fff;padding:5px;text-decoration:none;border-radius:3px;margin-bottom:10px;display:inline-block;" href="http://myserver.com/file-transfer/download.php?i=Li4vdXBsb2Fkcy8wNi0xMi0yMDE1L3NsaWRlMy5qcGc=">Download slide3.jpg</a></li>
10. <li><a style="font-family:sans-serif;background:#1F6FA9;color:#fff;padding:5px;text-decoration:none;border-radius:3px;margin-bottom:10px;display:inline-block;" href="http://myserver.com/file-transfer/download.php?i=Li4vdXBsb2Fkcy8wNi0xMi0yMDE1L3NsaWRlMy5wZGY=">Download slide3.pdf</a></li>
11. </ul>我找不到任何关于线断的地方或原因的一致性。有什么想法吗?它在2-3和6-7线之间断裂。
以下是我的标题和send,以防您需要引用它
<?php
$headers = 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
$headers .= 'From: file-transfer@myserver.com <file-transfer@myserver.com>' . "\r\n";
$headers .= 'Reply-To: '. $request->email . "\r\n";
$send = @mail('me@gmail.com', 'New Files from Secure File Transfer', $message, $headers);
?>我尝试过做一个preg_replace来删除任何\n或\r
发布于 2015-06-12 21:37:17
电子邮件有线硬和建议限制线的长度,这是详细的在IETF RFC 5322关于"Internet消息格式- IETF工具“。您可以使用像PHPMailer和梨邮这样的电子邮件库来简化电子邮件处理。
2.1.1。行长限制该规范对一行中的字符数设置了两个限制。每行字符不得超过998个字符,不应超过78个字符,不包括CRLF。998字符限制是由于许多在发送、接收或存储IMF消息的实现中受到限制,而IMF消息不能在一行上处理超过998个字符。为了健壮性起见,接收实现可以很好地处理行中任意数量的字符。但是,有太多的实现(符合RFC5321的传输要求)不接受包含超过1000个字符的消息,包括每行CR和LF,因此实现不创建此类消息非常重要。更保守的78个字符建议是适应显示这些消息的用户界面的许多实现,这些实现可能截断或灾难性地包装每行显示超过78个字符,尽管这样的实现不符合本规范的意图(如果它们实际上导致信息丢失,则是RFC5321的实现)。同样,即使对消息设置了这一限制,为了健壮性,显示消息的实现也有责任处理行中任意数量的字符(当然至少可以达到998字符限制)。
https://stackoverflow.com/questions/30811926
复制相似问题