我想在PHP中的字符串中存储尖括号,因为我想最终使用mail()发送HTML电子邮件。
以下是似乎不起作用的代码。
while(...) {
$msg .= "<img src=\"http://.../images/".$media['Path']."\"><br>";
echo "message: ".$msg."<br>";
}
我想要的是$ msg包含一系列由换行符分隔的图像(由$ media ['Path']提供)。然后将$ msg传递给mail()。
回声确认没有发送图像。事实上,我在电子邮件正文中没有收到任何图片。为什么会这样?我该如何解决?
答案 0 :(得分:3)
在电子邮件中嵌入图片的方法有两种:
<img src="http://..."
;和(1)我想你要做的是什么。许多邮件程序将(正确地)阻止这些图像,因为它们被垃圾邮件发送者用来测试电子邮件帐户的活跃程度。
最好做(2)。见PHP Email: Using Embedded Images in HTML Email。基本上,您创建了一个多部分MIME电子邮件(因此您可以附加HTML和图像),然后通过cid而不是真正的URL引用它们。对于接收它们的任何邮件程序来说,这些都不那么可疑,但显然会导致更大的电子邮件(因为图像可能会被发送100,000次而不是仅发送一个URL)。
答案 1 :(得分:1)
您是否检查过回收的HTML?您可能有错误的图像路径。此外,如果您要通过电子邮件发送,则需要使用绝对路径(http://yoursite.com/images/theimage.jpg而不是images / theimage.jpg)。
另外,请确保在mail()函数中设置了标题,以便将其作为HTML而不是纯文本发送。
答案 2 :(得分:0)
您还可以使用Swiftmailer或PHPMailer等邮件包装,它可以帮助您解决问题。你已经说过你有时间限制,所以你可能需要更长的时间来实际转换为使用类似的东西。
答案 3 :(得分:-2)
要在尖括号中回显,请使用:
< //<=
> //>=
我认为php无法处理尖括号,因为它是: 尝试以下操作:
$varone='one';
$vartwo='two';
$b=' <';
$concateOne='With Normal Brackets : '.$varone.'<'.$vartwo.'>'.'<br>';
$concateTwo='With Character Brackets : '.$varone.'<'.$vartwo.'>'.'<br>';
echo $concateOne;
echo '<br>';
echo $concateTwo;
echo '<hr>';
var_dump($concateOne);
echo '<hr>';
var_dump($concateTwo);
echo '<hr>';
在转储变量时,您会发现php不存储普通括号的值。