Как отправить файл журнала самому себе с помощью PHP с компьютера Windows?
Ситуация:
- Я запускаю PHP-скрипт с компьютера с Windows 7, используя интерфейс командной строки.
- Мой скрипт сделает свое дело, а затем сгенерирует 1 файл журнала в конце.
- Я уже заставил всю эту часть работать.
В дополнение к этому я хочу отправлять по электронной почте себе этот файл журнала каждый раз, когда запускается скрипт.
Где-то в нижней части моего сценария я попробовал это:
mail('[email protected]', 'Report', strip_tags($response). PHP_EOL );
Скрипт запущен до самого низа, я получил свой файл журнала для генерации, Я также получил отчет о своем CLI, но я никогда не получал никаких электронных писем.
Результат:
Я не уверен, потому что я:
- нахожусь в окне.
- необходимо разрешить определенное расширение php
- Необходимо настроить дополнительные параметры в моем php.ini.
Может ли кто-нибудь помочь прояснить этот вопрос?
1 answers
Вам нужен почтовый сервер, который настроен в PHP.ini
для отправки вашей почты.
Вот краткое руководство:
Http://geekswithblogs.net/tkokke/archive/2009/05/31/sending-email-from-php-on-windows-using-iis.aspx
Обратите внимание, что консоль IIS6 по-прежнему необходима для почтового сервера, также если вы размещаете на >=IIS7.
Также вам необходимо убедиться, что ваш почтовый сервер принят Почтовым сервером, на который вы хотите отправить это письмо. Это определенно не тривиальная задача. Например, Gmail и GMX никогда не примут его, если у вас не было правильно настроено Reverse DNS
.
Если вы не знаете, как это сделать, я настоятельно рекомендую поговорить с вашим системным администратором. Почтовый сервер очень сложно правильно настроить. Это задача, над которой я работаю.
Но вот хорошие новости, если вы не хотите настраивать свой собственный почтовый сервер. Это очень просто с размещенным адресом электронной почты и SMTP, если вы используете проект с открытым исходным кодом PHPMailer
:
require 'PHPMailerAutoload.php';
$mail = new PHPMailer;
$mail->isSMTP(); // Set mailer to use SMTP
$mail->Host = 'smtp1.example.com;smtp2.example.com'; // Specify main and backup SMTP servers
$mail->SMTPAuth = true; // Enable SMTP authentication
$mail->Username = '[email protected]'; // SMTP username
$mail->Password = 'secret'; // SMTP password
$mail->SMTPSecure = 'tls'; // Enable TLS encryption, `ssl` also accepted
$mail->Port = 587; // TCP port to connect to
//More in the Documentation
У него есть мощный класс SMTP, который помогает extreme для входа в любую учетную запись SMTP (например, Gmail).