Письма не отправляются через PHPMailer - PullRequest
0 голосов
/ 29 апреля 2018

Я взял на себя веб-разработку для компании, и у них есть форма обратной связи на нескольких страницах ( colorado , prescott , flagstaff и Вайоминг ), который отправляет информацию о форме на электронную почту в виде фильтра спама с использованием PHPmailer. Тем не менее, они не получают электронные письма так, как они надеялись. Я могу получать электронные письма через все электронные письма addAddress, за исключением одного, использующего $ recipeint . Обыскал и попробовал все, что мог придумать, включая взорвать и 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 голосов
/ 30 апреля 2018

Это странный код или неполный. В существующем состоянии он будет пытаться отправлять электронную почту только при location == 'flagstaff', поэтому вам, вероятно, необходимо уделить внимание вашим условиям.

addAddress принимает только один адрес; если вы хотите отправить больше, позвоните несколько раз в цикле. Например:

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