我是PHP的新手,但对事物有很好的掌握(还没有学过课程)。
问题:
选择哪个?我的新联系表单的PHPMailer或mail()。
表单很简单:
Your name:
Your email:
Subject:
Body:
我每天有大约2,000名访客,每天收到大约10份提交,所以我不需要任何太过花哨的东西。 =)
我头脑中的其他问题:
anti-spambot display:none CSS
技巧。email_validator()
函数的步骤?谢谢!运气好的话,我很快就会回答问题。洛尔
答案 0 :(得分:14)
以下是我能想到的一切,如果有任何明显的遗漏,请原谅我。
使用PHP的内置邮件功能的优点,没有外部库/包装器:
使用外部库/包装器的优点:
$message->addAttachment($file);
一样简单,无需使用标题等。如果我能想到其他任何事情,我一定会加上它。
答案 1 :(得分:1)
这可能不会真正回答你所有的问题,但它也不会伤害,我猜......
无论你想做什么,我不会选择mail()
:发送邮件并不是一件容易的事,使用现有的库/框架总是一个好主意:它会解决你可能没有想到的许多问题 - 即使你不需要发送大量邮件。
关于你的具体问题,也许其他答案会说些别的和/或获得你的更多信息,但是为发送邮件而创建的任何“好”库都应该处理这些问题......否则,你应该搜索另一个库^ ^
尽管如此,测试几个愚蠢的非地址将让你100%肯定; - )
另一个非常明确的解决方案是检查库的来源; - )
在2.2.1版的源代码中,你会发现这样的东西:
class.phpmailer.php
,功能AddAnAddress
,第413行,您会看到:
if (!self::ValidateAddress($address)) {
$this->SetError($this->Lang('invalid_address').': '. $address);
if ($this->exceptions) {
throw new phpmailerException($this->Lang('invalid_address').': '.$address);
}
echo $this->Lang('invalid_address').': '.$address;
return false;
}
似乎这个函数被添加地址的其他函数使用......所以,我想有某种电子邮件地址验证;-)
那至少会回答你的一个问题^^
PHPMailer不是唯一存在的解决方案,顺便说一下;还有很多其他的,例如:
答案 2 :(得分:1)
正如Pascal MARTIN所说,发送电子邮件并不像有些人认为的那样简单直接。直接回答你的问题。是的PHPMailer确实做了一些验证,但它不是超级先进的,但应该足以满足您的需求。 PHPMailer将为您节省一些时间,具体取决于您需要的自定义功能。有些事情需要考虑:
除了PHPMailer之外,Zend_Mail是一个很好的结账(它是Zend Framework的一部分)。然而,对于简单的联系表格,这可能有点多。
答案 3 :(得分:0)
PHPMailer是我的选择,因为它允许我在没有安装任何库或配置邮件服务器的情况下向谷歌发送SMTP电子邮件,这样我就不必担心垃圾邮件相关的问题了。