$from = "someonelse@example.com";
$headers = "From:" . $from;
echo mail ("borutflis1@gmail.com" ,"testmailfunction" , "Oj",$headers);
У меня проблемы с отправкой электронной почты на PHP. Я получаю сообщение об ошибке: SMTP server response: 530 SMTP authentication is required
.
У меня создалось впечатление, что вы можете отправлять электронную почту без SMTP для проверки. Я знаю, что это письмо, вероятно, будет отфильтровано, но сейчас это не имеет значения.
[mail function]
; For Win32 only.
; http://php.net/smtp
SMTP = localhost
; http://php.net/smtp-port
smtp_port = 25
; For Win32 only.
; http://php.net/sendmail-from
sendmail_from = someonelse@example.com
Это настройка в php.ini
файле. Как мне настроить SMTP? Существуют ли какие-либо SMTP-серверы, которые не требуют проверки, или я должен настроить сервер самостоятельно?
mail()
функции PHP .'phpmailer_init'
хука действия. Это удобный способ настроить WordPress для почты SMTP или Amazon SES (который поддерживает подключения SMTP).или, чтобы узнать подробности, читайте дальше .
источник
php mail()
функцией godaddy - 2017 - не нужно загружать PHPMailer или какой-либо другой сторонний ресурс - спасибоДля пользователей Unix mail () фактически использует команду Sendmail для отправки электронной почты. Вместо того, чтобы изменять приложение, вы можете изменить среду. msmtp - это SMTP-клиент с синтаксисом CLI, совместимым с Sendmail, что означает, что его можно использовать вместо Sendmail. Требуется лишь небольшое изменение вашего php.ini.
Тогда даже простая функция mail () может работать с добротой SMTP. Это очень полезно, если вы пытаетесь подключить существующее приложение к почтовым службам, таким как sendgrid или mandrill, без изменения приложения.
источник
mail()
на то, что поддерживает SMTP. Спасибо!Проблема в том, что
mail()
функция PHP имеет очень ограниченную функциональность. Есть несколько способов отправить почту из PHP.mail()
использует SMTP-сервер в вашей системе. В Windows можно использовать как минимум два сервера: hMailServer и xmail . Я потратил несколько часов на их настройку и установку. Первый, на мой взгляд, проще. Прямо сейчас hMailServer работает на Windows 7 x64.mail()
использует SMTP-сервер на удаленной или виртуальной машине с Linux. Конечно, настоящая почтовая служба, такая как Gmail, не допускает прямого подключения без каких-либо учетных данных или ключей. Вы можете настроить виртуальную машину или использовать ее в своей локальной сети. В большинстве дистрибутивов Linux есть почтовый сервер из коробки. Настройте его и получайте удовольствие. Я использую exim4 по умолчанию в Debian 7, который прослушивает его интерфейс LAN.Независимо от того, какой у вас выбор, я рекомендую вам использовать некоторый слой абстракции. Вы можете использовать библиотеку PHP на своей машине для разработки под управлением Windows и просто
mail()
работать на производственной машине с Linux. Уровень абстракции позволяет вам обмениваться почтовыми драйверами в зависимости от системы, на которой работает ваше приложение. Создайте абстрактныйMyMailer
класс или интерфейс с абстрактнымsend()
методом. Наследуйте два классаMyPhpMailer
иMySwiftMailer
. Реализуйтеsend()
метод подходящими способами.источник
Вот способ сделать это с помощью PHP PEAR
Если вы используете Gmail SMTP, не забудьте включить SMTP в своей учетной записи Gmail в настройках
РЕДАКТИРОВАТЬ: Если вы не можете найти Mail.php в debian / ubuntu, вы можете установить php-pear с помощью
Затем установите почтовое расширение:
Тогда вы сможете загрузить его просто,
require_once "Mail.php"
иначе он находится здесь:/usr/share/php/Mail.php
источник
Есть некоторые SMTP-серверы, которые работают без аутентификации, но если сервер требует аутентификации, нет никакого способа обойти это.
Встроенные почтовые функции PHP очень ограничены - указание SMTP-сервера возможно только в WIndows. На * nix
mail()
будет использовать двоичные файлы ОС.Если вы хотите отправить электронную почту на произвольный SMTP-сервер в сети, рассмотрите возможность использования такой библиотеки, как SwiftMailer . Это позволит вам использовать, например, серверы исходящей почты Google Mail.
источник
В случаях, когда вы размещаете сайт Wordpress в Linux и имеете доступ к серверу, вы можете избавиться от некоторых проблем, установив msmtp, который позволяет отправлять сообщения через smtp из стандартной функции php mail (). msmtp - более простая альтернатива postfix, требующая немного большей настройки.
Вот шаги:
Установить msmtp
Создайте новый файл конфигурации:
... со следующей информацией о конфигурации:
Вам необходимо заменить данные конфигурации, представленные всем в пределах «<» и «>» (включительно, удалите их). В качестве хоста / имени пользователя / пароля используйте свои обычные учетные данные для отправки почты через вашего почтового провайдера.
Скажите PHP использовать его
Добавьте эту единственную строку:
Полную документацию можно найти здесь:
https://marlam.de/msmtp/
источник
Для другого подхода можно взять такой файл:
и отправьте так:
https://php.net/function.curl-setopt
источник