Intereting Posts
Массивы PHP – Сортировка по домену электронной почты (альтернативный) Показывать разные страницы, если первый раз PHP, который лучше всего подходит для хранения данных в сеансе и базе данных? PHP: если Internet Explorer 6, 7, 8 или 9 Laravel 4 на встроенном веб-сервере PHP (CGI) вместо Apache php. Должен ли я шифровать адреса электронной почты? textarea не может иметь значение по умолчанию PHP написать двоичный ответ Как использовать функции MySQL в Propel Как получить идентификатор адреса доставки / биллинга заказа за пределами API-интерфейса Magento? Как преобразовать базу данных MySQL в SQLite в PHP? ajaxloading openx с jquery и php Получение информации из поиска elastics по порядку входного массива php includes есть ли способ включить файл, относящийся только к этому документу? Онлайн-приложение для голосования. Как избежать повторного голосования от одного и того же пользователя

Как настроить PHP для отправки электронной почты?

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

$to = "myweb@gmail.com"; $subject = "Test mail"; $message = "My message"; $from = "webp@gmail.com"; $headers = "From:" . $from; mail($to,$subject,$message,$headers); 

Когда я пытаюсь запустить программу, это то, что я получаю:

  Warning: mail(): Failed to connect to mailserver at "localhost" port 25, verify your "SMTP" and "smtp_port" setting in php.ini or use ini_set(). 

Скажите, пожалуйста, какой адрес включить в переменную $ from. Мне нужен сервер smtp для этого? Как отправить почту с помощью localhost? Скажите, пожалуйста, что именно редактировать в файле php.ini

Я новичок во всем этом .. Пожалуйста, помогите мне ..

Related of "Как настроить PHP для отправки электронной почты?"

Вместо этого используйте PHPMailer: https://github.com/PHPMailer/PHPMailer

Как это использовать:

 require('./PHPMailer/class.phpmailer.php'); $mail=new PHPMailer(); $mail->CharSet = 'UTF-8'; $body = 'This is the message'; $mail->IsSMTP(); $mail->Host = 'smtp.gmail.com'; $mail->SMTPSecure = 'tls'; $mail->Port = 587; $mail->SMTPDebug = 1; $mail->SMTPAuth = true; $mail->Username = 'me.sender@gmail.com'; $mail->Password = '123!@#'; $mail->SetFrom('me.sender@gmail.com', $name); $mail->AddReplyTo('no-reply@mycomp.com','no-reply'); $mail->Subject = 'subject'; $mail->MsgHTML($body); $mail->AddAddress('abc1@gmail.com', 'title1'); $mail->AddAddress('abc2@gmail.com', 'title2'); /* ... */ $mail->AddAttachment($fileName); $mail->send(); 

Для отправки электронной почты вам необходимо настроить службу smtp на локальном компьютере. Есть много доступных свободно просто искать в google.

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

Вы не сможете отправлять сообщения через почтовые серверы других пользователей. Проконсультируйтесь с вашим провайдером хостинга о том, как отправлять электронные письма. Попробуйте отправить электронное письмо с вашего сервера без PHP, вы можете использовать любой почтовый клиент, такой как Outook. После этого попробуйте настроить PHP.ini с помощью настройки SMTP (отправки электронной почты) почтового клиента электронной почты.

Обычно хорошим местом для начала, когда вы сталкиваетесь с проблемами, является руководство . Страница настройки электронной почты объясняет, что существует большая разница между командой PHP mail, запущенной на MSWindows и в любой другой операционной системе; это хорошая идея, когда вы отправляете вопрос, чтобы предоставить соответствующую информацию о настройке этой части вашей системы и о том, в какой операционной системе она работает.

Ваш PHP настроен на общение с SMTP-сервером – по умолчанию для машины MSWindows, но либо у вас не установлено MTA, либо блокируется соединение. В то время как для коммерческого веб-сайта, на котором работает ваш собственный MTA, он довольно быстро входит в список вещей, которые нужно сделать, это не тривиальное упражнение – вам действительно нужно знать, что вы делаете, чтобы обеспечить безопасную настройку и работу. В вашем случае было бы более разумным использовать службу, настроенную и управляемую кем-то еще.

Поскольку вы будете подключаться к удаленному MTA с использованием адреса gmail, вам, вероятно, следует использовать сервер Gmail; вам понадобится аутентификация SMTP и, возможно, поддержка SSL – ни одна из них не поддерживается функцией mail () в PHP. Здесь есть простой пример использования swiftmailer с gmail или вот пример использования phpmailer

Чтобы исправить это, вы должны просмотреть свой PHP.INI и настройки почтовых служб, которые у вас есть на вашем сервере.

Но мой лучший совет для вас – это забыть о функции mail() . Это зависит от настроек PHP.INI, его конфигурация отличается в зависимости от платформы (Linux или Windows), и она не может обрабатывать аутентификацию SMTP , что является большой проблемой в текущие дни. Слишком много головной боли.

Вместо этого используйте «PHP Mailer» ( http://phpmailer.worxware.com ), это класс PHP, доступный бесплатно, и он может обрабатывать практически любой SMTP-сервер, внутренний или внешний, с аутентификацией или без нее, он работает точно так же на Linux и Windows, и это не будет зависеть от настроек PHP.INI. Он поставляется со многими примерами, он очень мощный и простой в использовании.

Вот ссылка, которая дает мне ответ, и мы используем gmail:

Установите «поддельный sendmail для окон». Если вы не используете XAMPP, вы можете скачать его здесь: http://glob.com.au/sendmail/sendmail.zip

Измените файл php.ini, чтобы использовать его (прокомментировали другие строки):

почтовая функция

Только для Win32.

 SMTP = smtp.gmail.com smtp_port = 25 For Win32 only. sendmail_from = <e-mail username>@gmail.com 

Только для Unix.

Вы также можете указать аргументы (по умолчанию: sendmail -t -i ).

 sendmail_path = "C:\xampp\sendmail\sendmail.exe -t" 

(игнорируйте бит «Unix only», поскольку мы фактически используем sendmail)

Затем вам нужно настроить файл «sendmail.ini» в каталоге, где был установлен sendmail:

Отправить письмо

 smtp_server=smtp.gmail.com smtp_port=25 error_logfile=error.log debug_logfile=debug.log auth_username=<username> auth_password=<password> force_sender=<e-mail username>@gmail.com