Форум русскоязычного сообщества Ubuntu


Увидели сообщение с непонятной ссылкой, спам, непристойность или оскорбление?
Воспользуйтесь ссылкой «Сообщить модератору» рядом с сообщением!

Автор Тема: ssmtp и несколько учеток почты  (Прочитано 6354 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн AnrDaemon

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 28366
    • Просмотр профиля
Re: ssmtp и несколько учеток почты
« Ответ #15 : 03 Марта 2012, 22:05:30 »
Мне показалось, вы имели в виду PHPMailer.
Раз это не так, тогда вы не до конца поняли проблему автора топика.
PHP mail() не работает сама по себе в вакууме.
Хуже того, под *NIX её работоспособность ограничена функционалом sendmail.
Хотите получить помощь? Потрудитесь представить запрошенную информацию в полном объёме.

Прежде чем [Отправить], нажми [Просмотр] и прочти собственное сообщение. Сам-то понял, что написал?…

Оффлайн factorwrk

  • Новичок
  • *
  • Сообщений: 3
    • Просмотр профиля
Re: ssmtp и несколько учеток почты
« Ответ #16 : 23 Сентября 2015, 15:17:10 »
Нашел данную тему, но не нашел ответа на вопрос, автора абсолютно никто не понял! Настолько не понял, что я даже решил все-таки тут отписаться, потому как попал сюда с абсолютно с таким же вопросом!
Может конечно автор и плохо объяснил суть проблемы, но все уперлись в то что это не нужно.
Самый простой пример, что хотел донести автор:
1. Есть сервер
2. На сервере живет ДВА (ну или больше) пользователя, Vasya и Petya
3. У каждого из них есть почта (к примеру) на яндексе аля vasya@yandex.ru и petya@yandex.ru
4. Каждый из них желает отправлять почту с сервера (аля echo test | mail -s test drug@yandex.ru), и при этом, чтоб оно отправлялось с именно его учетки яндекса!
Только у автора пользователями были его сайты.
У меня отчасти тоже вопрос из-за сайта возник, поскольку случилось так что местная доменная почта, которая висела на этом же сервере, переехала на яндекс, с помощью ssmtp решил отправку писем самим сервером, но есть сайт, довольно старый, и почему-то вот никак он не хочет работать с яндекс.почтой, из-за чего вот и задался аналогичным вопросом.
Вариант решения:
самой программе ssmtp можно передать параметром файл конфигурации отличный от "по умолчанию" ssmt -C /path/to/file.conf
На сайте поставил в настройках отправлять через Sendmail, путь до него указал /path/to/ssmtp -C file.conf (в файле revalias соответственно для пользователя апача сделал алиас на другой ящик)
Единственный момент - это все таки не решит проблему автора топика, поскольку там будет для всех сайтов использоваться алиас пользователя www (www-data). Но для меня это подошло, я разделил отправку писем самим сервером и сайтом.
А вот мой пример с несколькими пользователями - поидее можно решить скриптом, который будет выполнятся вместо mail и запускать ssmtp с нужным конфигом.

Оффлайн AnrDaemon

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 28366
    • Просмотр профиля
Re: ssmtp и несколько учеток почты
« Ответ #17 : 23 Сентября 2015, 18:03:37 »
И у вас опять задача по-дурацки поставлена.
Не предназначен ssmtp для отправки на внешние, тем более - чужие, почтовые сервера.
« Последнее редактирование: 23 Сентября 2015, 18:07:52 от AnrDaemon »
Хотите получить помощь? Потрудитесь представить запрошенную информацию в полном объёме.

Прежде чем [Отправить], нажми [Просмотр] и прочти собственное сообщение. Сам-то понял, что написал?…

Оффлайн RobSchneider

  • Новичок
  • *
  • Сообщений: 1
    • Просмотр профиля
Re: ssmtp и несколько учеток почты
« Ответ #18 : 28 Марта 2020, 13:12:39 »
 8)

В коде сайта сделать не проще?
В общем, почти в коде. Но чтобы в php не лазить...

Создаём различные конфигурационные файлы для каждого домена:
# cp /etc/ssmtp/ssmtp.conf /etc/ssmtp/ssmtp-domain1.conf
# cp /etc/ssmtp/ssmtp.conf /etc/ssmtp/ssmtp-domain2.conf
В каждом конфиге указываем свои аутентификационные данные.

В файле /etc/ssmtp/revaliases укажем оба домена:

root:webmaster@domain1.ru:smtp.yandex.ru:465
root:webmaster@domain2.ru:smtp.mail.ru:465

Таким образом почта с From:webmaster@domain1.ru пойдёт на smtp.yandex.ru, а с webmaster@domain2.ru на smtp.mail.ru. Разумеется, с учётом того, что будут использоваться разный конфиг ssmtp для своего домена.

Теперь задача. Как нам указать произвольный конфиг для ssmtp?
Нужно открыть файл php.ini и найти параметр sendmail_path= , который нужно раскомментировать и указать следующее:

/usr/sbin/ssmtp -t -C<config>
Собственные настройки PHP в зависимости от виртуального хоста
Теперь надо заставить nginx (у меня nginx, поэтому привожу для него) менять этот параметр в зависимости от домена.
Открываем конфигурационные файлы nginx (где описание виртуальных хостов) и добавляем для каждого домена соответствующую строку:

fastcgi_param PHP_VALUE "sendmail_path=/usr/sbin/ssmtp -t -C/etc/ssmtp/ssmtp-domain1.conf";
fastcgi_param PHP_VALUE "sendmail_path=/usr/sbin/ssmtp -t -C/etc/ssmtp/ssmtp-domain2.conf";
и так далее.

Теперь для каждого домена применяется собственный путь к sendmail (а значит и параметры аутентификации).
Для проверки кидаем в document_root каталоги каждого домена файлы mail.php следующего содержания:

<?php
mail
('наш_адрес@домен.ru','тема','сообщение',"From: webmaster@domain1.ru \r\n"."X-Mailer: PHP/" phpversion());
?>

в первый каталог и соответственно во второй:

<?php
mail
('наш_адрес@домен.ru','тема','сообщение',"From: webmaster@domain2.ru \r\n"."X-Mailer: PHP/" phpversion());
?>

Открываем в браузере оба файла: http://domain1.ru/mail.php и http://domain2.ru/mail.php

Нам на почту “наш_адрес@домен.ru” падает два письма. Одно соответственно с webmaster@domain1.ru, второе с webmaster@domain2.ru.

Задача решена!
Взято отсюда

 

Страница сгенерирована за 0.082 секунд. Запросов: 25.