Простая функция PHP Mail не работает на сервере Amazon EC2

См. Этот код

<?php $to = "someone@example.com"; $subject = "Test mail"; $message = "Hello! This is a simple email message."; $from = "someonelse@example.com"; $headers = "From:" . $from; mail($to,$subject,$message,$headers); echo "Mail Sent."; ?> 

в чем проблема в этом коде. Он не работает на сервере Amazon Linux

благодаря

Solutions Collecting From Web of "Простая функция PHP Mail не работает на сервере Amazon EC2"

У меня была такая же проблема, как и при отправке электронной почты с помощью почты Php mail() . Установка отправки почты решила его для меня.

 sudo apt-get install sendmail 

Сервер Amazon позволяет отправлять функции sendmail с помощью localhost. Пожалуйста, раскомментируйте конфигурацию почты в php.ini.

Я уже сделал это и отлично работал.

вы согласны использовать другие почтовые рамки? Если да, вы можете использовать phpmailer … он отлично работает для меня.

вот ссылка на их сайте. http://phpmailer.worxware.com/

Очевидно, отправка PHP из EC2 невозможна до тех пор, пока поддержка не будет разблокирована. Чтобы разблокировать его, посетите: EC2 – Fresh PHP install – Mail не работает

В противном случае я просто процитирую @Charles ответ:

Это не будет напрямую решать вашу проблему (изменить: я имею в виду сообщение об ошибке, которое вы сейчас отредактировали), но экземпляры Amazon EC2 имеют очень заметную репутацию почты. Вероятно, у вас проблемы с доставкой.

К счастью, Amazon создал Простую службу электронной почты, чтобы идти вместе с EC2, со свободным уровнем обслуживания для клиентов EC2. API довольно прост и существуют транспортные адаптеры для многих отличных библиотек рассылки PHP, таких как SwiftMailer (транспорт).

Таким образом – нет, вы не можете отправить, но используйте Simple Email Service , библиотеки, такие как SwiftMailer , или я бы добавил такие сервисы, как SendGrid

* Источник: еще один вопрос о php mail и EC2

MEANWHILE: Я подписался на Simple Email Service, что в некоторой степени делает SendGrid. Это было очень просто. Сначала вы запрашиваете пользователя и пароль пользователя smtp. Затем вы либо подтверждаете электронное письмо для тестирования, либо запрашиваете доступ к продукту [мне это не нужно, поэтому я не прошел процесс). И одно предостережение – используйте ssl:// перед хостом, или он даст вам SMTP error: 530 5.7.0 Must issue a STARTTLS command first. ошибка. Я использовал CakePHP и EC2, когда это произошло.

Просто следуйте инструкциям ниже (Протестировано для ubuntu 10x EC2)

 sudo apt-get install php-pear // Install php-pear if not installed sudo pear install mail sudo pear install Net_SMTP sudo pear install Auth_SASL sudo pear install mail_mime sudo apt-get install postfix sudo service apache2 restart 

Наслаждайтесь!