2010-07-21 80 views
3

我可以通过在邮件程序中定义id来发送电子邮件到一个电子邮件ID,但是我无法理解如何在用户在一个邮件中输入“电子邮件和电子邮件ID”时发送给多个收件人形成。例如 - 我展示了一个包含两个文本区域的表单 - 一个用于电子邮件ID和一个用于自定义消息。所以当他们点击发送时,我想从该文本区域获取电子邮件ID并将该消息发送给这些ID。我还没有弄清楚如何逗号/空格分隔电子邮件,但会尝试在谷歌搜索。php mail multiple recepients

感谢

+0

我已经添加了一个指向你可能会觉得有用的链接。 – 2010-07-23 04:05:53

回答

0

做一些搜索后,我用这个答案来发送由分号分隔的多个地址(由于某种原因,我试着用逗号在此代码失败了,但我用分号罚款)。

如果万一如果有人找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); 

$电子邮件ID - 从形式

收集这样做上述置换后,我只是用普通的“给”的邮件发送给多个收件人。

$to = "$emails_tosend"; 
mail ($to, $subject, $message, $headers); 

希望这有帮助,很明显。我可以解释是否有人需要更多的澄清。感谢你的帮助。

4

to参数为mail()功能状态的文档:

Receiver, or receivers of the mail. 

The formatting of this string must comply with » RFC 2822. Some examples are: 

    * [email protected] 
    * [email protected], [email protected] 
    * User <[email protected]> 
    * User <[email protected]>, Another User <[email protected]> 

http://php.net/manual/en/function.mail.php

更新:

我遇到这个伟大的教程发送邮件用PHP: http://articles.sitepoint.com/article/advanced-email-php

+0

嗨, 谢谢,我设法发送多封电子邮件,我打算今天的某个时候发布代码,一旦我清理了一点点。现在我坚持通过cron发送自动电子邮件。这是我需要的 - 当管理员发送电子邮件时,我将信息,电子邮件,活动日期存储在数据库中。现在我正在尝试设置acron工作,以发送电子邮件到桌面上的所有这些ID,并提示我提示消息。我不熟悉cron作业脚本,任何人都可以帮助引导我正确的方式来写脚本,我可以放在cron tab.thanks – Jay 2010-07-28 12:47:20

+0

我同意你的观点,正如我在另外一个问题中提到的那样,我绝对会给出一个信用点基于回答和评论,我完成了我的工作。可能会有延迟,但我会毫不犹豫地做。我会稍微发布我的cron工作问题。谢谢。我补充说,作为一个问题在这里http://stackoverflow.com/questions/3368307/how-to-send-emails-via-cron-job-usng-php-mysql – Jay 2010-07-30 02:10:24

1

用逗号分隔地址。

3

如果您必须做任何事情,即使是“适度”复杂的任何事情,比如电子邮件的多个收件人,使用诸如PHPMailer(免费,易于安装,易于使用)之类的东西要容易得多。它会在一个漂亮的界面后面隐藏所有丑陋的细节。而不必担心头语法和诸如此类的东西,你只是这样做:

$mail = new PHPMailer(); 
$mail->AddAddress('[email protected]'); 
$mail->AddAddress('[email protected]'); 
etc... 
+0

+1一个好主意,但我认为这是必不可少的知道幕后发生了什么。 – 2010-07-23 04:05:06