PHP将电子邮件发送到从输入字段获取的多个电子邮件地

时间:2017-05-22 14:56:47

标签: php email post

我想使用我的表单向多个电子邮件地址发送邀请。

我希望用户在表单中输入多个电子邮件地址(最多4个),然后将邀请加入我的网站的电子邮件地址。

但我找不到使用PHP表单向多个收件人发送电子邮件的解决方案。

这是我的代码:

<?php 
    if ($_POST["email"]<>'') { 
        $email_to = $_POST['email'];
        $email_to = $_POST['email1'];
        $EmailSubject = 'Site contact form'; 
        $mailheader = "From: Marsh Children Home 
        <hola@marshchildrenshome.org.mx>\r\n"; 
        $mailheader .= "Reply-To: hola@marshchildrenshome.org.mx\r\n"; 
        $mailheader .= "Content-type: text/html; charset=iso-8859-1\r\n"; 
        $MESSAGE_BODY = "Name: ".$_POST["name"].""; 
        $MESSAGE_BODY .= "Email: ".$_POST["email"].""; 
        $MESSAGE_BODY .= "Comment: ".nl2br($_POST["comment"]).""; 
        mail($email_to, $EmailSubject, $MESSAGE_BODY, $mailheader) or die 
        ("Failure"); 
?> 

但它只向一位收件人发送电子邮件email1

2 个答案:

答案 0 :(得分:0)

首先使用 explode 将您的电子邮件字符串分解为逗号分隔数组,然后使用每个循环发送电子邮件。例如,你可以这样做

$toEmails=explode(";" , $_POST['email']); //you have array now

 //loop through the array to send email to each user  
 foreach($toEmails as $toEmail)
    {
    mail($toEmail, $EmailSubject, $MESSAGE_BODY, $mailheader) or die ("Failure"); 
     }

答案 1 :(得分:-2)

您将立即覆盖以下行中的$email_to! 试试这个:

$email_to .= ';'.$_POST['email1'];

另外,我应该指出你应该在使用之前过滤并验证yopur $ _POST数据!

对于4封可能的电子邮件,另一个选项是4个变量:

$email2 = $_POST['email2']; //etc

然后检查它是否为空:

if (!empty($email2)) {
    mail($email2, $EmailSubject, $MESSAGE_BODY, $mailheader) or die("Failure");
}