PHP-почта не получена, кажется, успешна – размещена на AWS

Я создаю стандартную форму контакта на веб-сайте, размещенном на веб-сервисах Amazon. Часть, которая, как мне кажется, вызывает у меня проблемы, заключается в следующем:

$to = "theCoolestGuy@gmail.com"; $name = trim($_POST['name']); $email = trim($_POST['email']); $message = trim($_POST['message']); $subject = "The best email subject of all time."; $message = "Name: $name \r\n Email: $email \r\n Message: $message"; $headers = "From:" . "veryCoolPerson@gmail.com"; $mailsent = mail($to, $subject, $message, $headers); if($mailsent) { if ( $js === 'no-js' ) { header('Location: thankyoupage.php'); } else { $response = array('status' => 'success'); echo json_encode($response); } } 

В приведенном выше коде почта успешно отправлена. $mailsent равно 1 и код возвращает { status: 'success' } . Мне сложно понять, почему я не получаю почту, когда результат $mailsent true .

Любая помощь очень важна. ^ _ ^

Edit: Если это плохой способ сформулировать мой вопрос, просто дайте мне знать. Я более или менее пытаюсь понять, почему переменная $mailsent возвращает «правдивый», и я не получаю почту.

Стандартный метод PHP-почты не работает должным образом при размещении в Amazon Web Services; кажется, что еще несколько других столкнулись с этим. Есть несколько шагов к настройке службы SAS Amazon и правильное выполнение этого.

  1. Добавьте свой адрес электронной почты на подтвержденные адреса электронной почты в SAS Amazon. Войдите в свою учетную запись веб-служб Amazon. Под заголовком App Services перейдите в SES . Перейдите к проверенным отправителям – адреса электронной почты в левой навигационной панели. Нажмите кнопку «Проверить новый адрес электронной почты» и выполните процедуру проверки электронной почты (это просто!).

  2. Получите свои учетные данные SMTP. После проверки вашей электронной почты перейдите в SMTP-сервисы на странице управления сайтами Amazon Web Services> SES, к которой мы перешли ранее. Нажмите кнопку «Создать мои учетные данные SMTP». Он даст вам ваши учетные данные один раз, и только один раз! Поэтому сохраните их где-нибудь для последующего использования.

  3. Создайте обработчик формы. Создайте файл php, который будет обрабатывать представления форм. Я решил использовать библиотеку PHPMailer для упрощения. Вот код, который заставил эту вещь работать для меня:

      // get your submitted fields $name = $_POST['name']; $email = $_POST['email']; $message = $_POST['message']; // include phpmailer require_once('class.phpmailer.php'); try { // smtp settings // set this to true to throw exceptions // if you're running into issues $mail = new PHPMailer(); $mail - > IsSMTP(); $mail - > SMTPAuth = true; $mail - > SMTPSecure = "tls"; $mail - > Host = "email-smtp.us-east-1.amazonaws.com"; // be sure this matches your server! can be found in the smtp settings from step 2 $mail - > Username = "XXXXXXXXXXXXXXXXXXXXXX"; // your SMTP username from step 2! $mail - > Password = "XXXXXXXXXXXXXXXXXXXXXX"; // your SMTP password from step 2! $mail - > SetFrom('verfiedEmail@domain.com', 'FromName'); // from email - verified email address in step 1! $mail - > Subject = "Your Email Subject!"; //subject $body = "<strong>The body of your message!</strong>"; // Body of your message $mail - > MsgHTML($body); // recipient $mail - > AddAddress("email@domain.com", "RecepientName"); // this is where the email will be sent // success if ($mail - > Send()) { // woohoo! the mail sent! do your success things here. } } // errors :( } catch (phpmailerException $e) { echo $e - > errorMessage(); } catch (Exception $e) { echo $e - > getMessage(); } 

После выполнения этих шагов вы должны незамедлительно работать. Повеселись.

 $headers = 'MIME-Version: 1.0' . "\r\n"; $headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n"; $headers .= "From: Coolest guy" . "\r\n"; ini_set("sendmail_from","webmaster@".$_SERVER["SERVER_NAME"]); mail($to,$subject,$message,$headers); - $headers = 'MIME-Version: 1.0' . "\r\n"; $headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n"; $headers .= "From: Coolest guy" . "\r\n"; ini_set("sendmail_from","webmaster@".$_SERVER["SERVER_NAME"]); mail($to,$subject,$message,$headers);