在使用PHP发送电子邮件时,一般意见是要避开PHP的内置mail()函数并使用库来代替.
我想知道的是使用mail()库或扩展的实际原因和缺陷.例如,通常指定的标头未包含在标准mail()调用中.
我感觉有点尴尬,因为我使用PHP生成邮件正文而不会转义变量.在HTML中我使用htmlspecialchars()或类似函数,命令行escapeshellarg(),但对于邮件?例如这样的事情:
<?php
$usercontent = $_GET['usercontent'];
mail("dummy@nowhere.tld", "My Subject", "My body with $usercontent included");
?>
Run Code Online (Sandbox Code Playgroud)
一个可能的攻击者可能会对上面的脚本做什么,我怎么能防止这样的攻击呢?或者是PHP mail()保存,为什么?
更新
请参考示例: