没有通过PHPMailer发送电子邮件

时间:2018-04-28 21:11:29

标签: arrays switch-statement phpmailer

我接管了一家公司的网络开发,他们在几页上收到了反馈表(科罗拉多 prescott 旗杆< / strong>和怀俄明州)使用PHPmailer将表单信息作为垃圾邮件过滤器提交给电子邮件。但是,他们并没有按照他们希望的方式接收电子邮件。除了使用 $ recipeint 的电子邮件之外,我可以通过所有addAddress电子邮件收到电子邮件。搜索并尝试了我能想到的一切,包括爆炸 foreach 其他代码。无法使其发挥作用。一点帮助就会很棒。

$colorado = array( "ColoradoSprings", "Denver", "Boulder" );
$colorado = array_map( 'strtolower', $colorado );

$wyoming = array( "Cheyenne", "Buffalo" );
$wyoming = array_map( 'strtolower', $wyoming );

if ( in_array( $_POST[ 'location' ], $colorado ) || in_array( $_POST[ 'location' ], $wyoming ) )
    $recipient = "person1@mail.com, person2@mail.com";

switch ( $_POST[ 'location' ] ) {
    case "prescott":
        $recipient = "person3@mail.com, person4@mail.com";
        break;
    case "flagstaff":
        $recipient = "person3@mail.com, person4@mail.com";


        $mail = new PHPMailer;
        $mail->isSMTP();
        $mail->SMTPDebug = 0;
        $mail->Debugoutput = 'html';
        $mail->Host = 'smtp.mail.com';
        $mail->Port = 587;
        $mail->SMTPSecure = 'tls';
        $mail->SMTPAuth = true;
        $mail->Username = "senderemail@mail.com";
        $mail->Password = "password";
        $mail->setFrom( 'allmail@mail.com', 'Everyone' );
        $mail->addReplyTo( $_POST[ "Email" ], $_POST[ "Name" ] );
        $mail->addAddress( 'allmail@mail.com', 'Everyone' );
        $mail->addAddress( 'random@mail.com', 'John Doe' );
        $mail->addAddress( $recipient, 'Others' );

1 个答案:

答案 0 :(得分:0)

这是奇怪的代码,或者不完整。目前它只会尝试发送电子邮件location == 'flagstaff',所以你可能需要注意你的条件。

addAddress只接受一个地址;如果你想发送更多,请循环调用多次。例如:

$recipients = ["person1@mail.com", "person2@mail.com"];
foreach ($recipients as $recipient) {
    $mail->addAddress($recipient);
}