Отправка электронной почты с помощью PHPMailer без SMTP

#phpmailer

#phpmailer

Вопрос:

Я знаю, что мы могли бы использовать PHPMailer для отправки электронной почты без необходимости SMTP. Но я все еще не понимаю, как это настраивается.

1 / Можем ли мы установить что-либо в «Email From»? Если это так, то кто-нибудь мог подделать адрес электронной почты и отправить его кому угодно? Если нет, то в чем условие?

2/ Какую базовую конфигурацию должен иметь веб-сервер, чтобы он работал.

Извините за мои глупые вопросы.

    <?php

        $mail = new PHPMailer(true);

       //Typical mail data
       $mail->AddAddress($email, $name);
       $mail->SetFrom("britney@britneyspears.com", "Britney Spears");
       $mail->Subject = "My Subject";
       $mail->Body = "Mail contents";

       try{
         $mail->Send();
         echo "Success!";
       } catch(Exception $e){
         //Something went bad
         echo "Fail - " . $mail->ErrorInfo;
       }

?>
  

Ответ №1:

Я не знаком.

смотрите. https://github.com/PHPMailer/PHPMailer

1 / Можем ли мы установить что-либо в «Email From»?

Вы можете использовать setFrom . (https://github.com/PHPMailer/PHPMailer#a-simple-example )

 $mail->setFrom('from@example.com', 'Mailer');
  

Если это так, то кто-нибудь мог подделать адрес электронной почты и отправить его кому угодно?

уххх… Я думаю, что у SMTP-сервера ошибка. Использование PHPMailer $from . возможно, $from было настроено setFrom . (https://github.com/PHPMailer/PHPMailer/blob/master/src/SMTP.php#L817 )

Если нет, то в чем условие?

Если адрес не задан, я думаю, произойдет ошибка. (https://github.com/PHPMailer/PHPMailer/blob/master/src/PHPMailer.php#L1185 )

Комментарии:

1. Вы можете попробовать установить поддельный адрес from, но нет гарантии, что почтовый сервер примет или доставит его, особенно если это приводит к сбоям SPF. Некоторые службы полностью игнорируют адрес from и всегда заменяют его адресом вашей учетной записи (тем, который вы вводите Username ) — gmail делает это. Главное — не пытаться это делать. Если вы создаете контактную форму, следуйте примерам, предоставленным с помощью PHPMailer.