我可以通过在邮件程序中定义电子邮件地址来向一个电子邮件地址发送电子邮件,但我不知道如何在用户在表单中输入“消息和电子邮件地址”时发送给多个收件人。例如- 我展示了一个带有两个文本区域的表单-一个用于电子邮件地址,另一个用于自定义消息。因此,当他们单击发送时,我想从该文本区域获取电子邮件地址并将该消息发送到这些地址。我还没有弄清楚如何用逗号/空格分隔电子邮件地址,但会在Google搜索中尝试。
谢谢
mail()
函数中to
参数的文档说明:
Receiver, or receivers of the mail.
The formatting of this string must comply with » RFC 2822. Some examples are:
* user@example.com
* user@example.com, anotheruser@example.com
* User <user@example.com>
* User <user@example.com>, Another User <anotheruser@example.com>
http://php.net/manual/zh/function.mail.php
更新:
我发现了这个非常好的使用PHP发送邮件的教程: http://articles.sitepoint.com/article/advanced-email-php
如果你需要处理一些稍微复杂的事情,比如给多个收件人发送邮件,使用像PHPMailer(免费、易于安装、易于使用)这样的工具会更加容易。它将在一个漂亮的界面后面为你隐藏所有丑陋的细节。你只需要做类似这样的事情,而不用担心头部语法等问题:
$mail = new PHPMailer();
$mail->AddAddress('address1@example.com');
$mail->AddAddress('address2@someotherplace.com');
etc...
用逗号分隔他们的地址。
经过一些搜索,我得出了这个答案,用分号分隔发送多个地址(由于某种原因,我在此代码中尝试使用逗号失败了,但是我可以接受分号)。
如果有人正在寻找JS验证以检查输入的ID,则可以参考以下内容。
var emailRegex = /^(([a-zA-Z0-9_\-\.]+)@([a-zA-Z0-9_\-\.]+)\.([a-zA-Z]{2,5}){1,25})+([;.](([a-zA-Z0-9_\-\.]+)@([a-zA-Z0-9_\-\.]+)\.([a-zA-Z]{2,5}){1,25})+)*$/;
由于我收集的电子邮件ID是用分号分隔的,所以我必须将;替换为,
$emails_tosend = preg_replace('/;/', ',', $emailid);
$email id - 从表单中收集
因此,在执行上述替换后,我只需在邮件发送器中使用普通的“to”即可向多个收件人发送。
$to = "$emails_tosend";
mail ($to, $subject, $message, $headers);