@harasaev

Какой есть простой класс для работы с почтой на php?

Подскажите, есть ли простой класс для отправки почты с сайта? Просто заголовок и текст сообщения. Можно конечно использовать встроенную функцию mail(), но как-то не хочется изобретать велосипед)
  • Вопрос задан
  • 118 просмотров
Решения вопроса 1
alex-1917
@alex-1917
Не надо ничего изобретать.
В любой непонятной ситуации PHPMailer
Вот пример из ТОСТЕРА))) ДА-ДА, тут есть еще и поиск:
spoiler

Как отправить письмо если mail() на сервере отключен?
require_once(JPATH_SITE.'/libraries/phpmailer/phpmailer.php');
        $mail = new PHPMailer;

        $sender = array($call_email, JText::_('modcallback_title'));

        $mail->isSMTP();
        $mail->SMTPDebug = 0;
        $mail->Host = 'ssl://smtp.yandex.ru';
        $mail->Port = 465;
        $mail->SMTPSecure = 'SSL';
        $mail->SMTPAuth = true;
        $mail->Username = $call_email;
        $mail->Password = "";//        Пароль
        $mail->setFrom($sender);
        $mail->addReplyTo($sender);
        $mail->addAddress($sender);

        $mail->Subject = 'subjec't;

        $mail->Body = 'Body';

        return $mail->send();

Ну а если без шуток, то не надо везде быть моднымстильныммолодежным, тащить ради одно пука целую либу и ставить на каждую дырку затычку в виде npm-пакета)))
Твой вопрос решает код в 87 строк, выжимка из упомянутой либы, гуглится по первой строчке
$mhSmtpMail_Server = "ssl://smtp.yandex.ru";
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
@mezhuev
Системный администратор
Есть вариант для тех, у кого свой свой сервер (физический или виртуальный) и кому достаточно функционала встроенной функции mail().
  1. Подключаемся к серверу по SSH и устанавливаем пакет msmtp.
    • CentOS: yum install msmtp, предварительно может потребоваться подключить репозиторий EPEL: yum install epel-release
    • Ubuntu: apt install msmtp
    • FreeBSD: pkg install mail/msmtp или, если предпочитаете порты: portmaster mail/msmtp

  2. Создаёте файл конфигурации, где прописываете параметры подключения к почтовому серверу, включая используемую учётную запись. Файл может располагаться в домашней директории пользователя ~/.msmtpr или же в быть одним на всю систему:
    • CentOS и Ubuntu: /etc/msmtprc
    • FreeBSD: /usr/local/etc/msmtprc

    Пример для Яндекса:
    account default
    host smtp.yandex.ru
    port 465
    from site@example.com
    auth plain
    user site@example.com
    password Pa$$w0rD
    tls on
    tls_certcheck off

    Полный список параметров и их подробное описание доступно по man msmtp.
    Примечание: вместо tls_certcheck лучше использовать tls_trust_file.
  3. Вносим изменения в файл php.ini:
    • CentOS, файл /etc/php.ini:
      sendmail_path = /usr/bin/msmtp -t
    • Ubuntu, файл /etc/php/fpm/php.ini или /etc/php/apache2/php.ini:
      sendmail_path = /usr/bin/msmtp -t
    • FreeBSD, файл /usr/local/etc/php.ini:
      sendmail_path = /usr/local/bin/msmtp -t

Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы