Установка и настройка Sendmail в среде Ubuntu

How to Install Sendmail on Ubuntu 18.04 & 16.04 LTS

Sendmail is a general purpose email routing facility used for email transport over the Internet. It includes SMTP (Simple Mail Transfer Protocol) for the mail-transfer and email delivery. Most of the system administrators preferred to use Sendmail server as MTA than other MTAs. You can also use Sendmail server to send the email via external SMTP servers like Gmail, Amazon SES, MailChimp etc.

1. Remove Postfix

Postfix is the default SMTP service pre-installed on Ubuntu operating systems. And you are willing to use Sendmail server on your system.

First of all, remove the existing postfix installation on Ubuntu.

2. Install Sendmail

If you don’t have installed Sendmail using the following command to install Sendmail with other required packages using yum package manager.

3. Configure Sendmail Server

The execute the sendmailconfig command to complete the basic configuration.

Select all options to ‘Y’ and press enter. Wait for the command finish.

Your server is ready for sending emails. You can use the Linux command line or PHP script to send emails.

4. Receive Incomming Emails

Edit /etc/mail/sendmail.mc file and comment below line to allow receiving an email from anywhere. To comment a line in sendmail.mc, just put dnl keyword at the start of the line.

Then add your domain names to /etc/mail/local-host-names file.

Now use m4 is a macro processor to compile the Sendmail configuration files. m4 is stream-based, that is, it doesn’t understand about lines.

Restart Sendmail service

Your system is ready for incoming emails.

5. Configure Domain-based E-mail Routing

As we read above that virtusertable file used for aliasing, allowing multiple virtual domains to be hosted on one machine.

  • 1. All emails addressed to @example.com domain delivered to [email protected]
  • 2. All emails addressed to [email protected] will forward to local user jack.
  • 3. All emails addressed to @mydomain.com will forward to domain @otherdomain.com with corresponding usernames.
  • 4. All emails addressed to @otherdomain.com will be rejected my mail server with acknowledging sender with the message

After making all changes in virtusertable execute following command to create updated virtusertable.db file containing the new configuration.

Now restart Sendmail service

Thanks for reading this article. I hope this article will help you to configure Sendmail on CentOS and Red Hat systems.

Как установить Sendmail на Ubuntu 18.04 и 16.04 LTS

Sendmail — это средство маршрутизации электронной почты общего назначения, используемое для передачи электронной почты через Интернет.

Он включает SMTP (Simple Mail Transfer Protocol) для пересылки почты и доставки электронной почты.

Большинство системных администраторов предпочитают использовать сервер Sendmail в качестве MTA.

Вы также можете использовать сервер Sendmail для отправки электронной почты через внешние SMTP-серверы, такие как Gmail, Amazon SES, MailChimp и т. д.

1. Удалите Постфикс

Postfix — это служба SMTP по умолчанию, предварительно установленная в операционных системах Ubuntu.

И если вы готовы использовать сервер Sendmail в вашей системе, прежде всего, удалите существующую установку postfix в Ubuntu.

2. Установите Sendmail

Если вы не установили Sendmail, используя следующую команду, чтобы установить Sendmail с другими необходимыми пакетами, используя менеджер пакетов yum.

Sendmail хранит все свои файлы конфигурации в каталоге /etc/mail.

Ниже вы найдете подробную информацию о файлах конфигурации Sendmail.

  • access — разрешить / запретить другим системам использовать Sendmail для исходящих писем.
  • domaintable — используется для сопоставления доменного имени для Sendmail.
  • local-host-names — используется для определения псевдонимов для хоста.
  • mailertable — Определяет инструкции, которые переопределяют маршрутизацию для определенных доменов.
  • virtusertable — определяет специфичную для домена форму псевдонимов, позволяющую разместить несколько виртуальных доменов на одном компьютере.

2.1 Закомментируйте строку ниже в /etc/mail/sendmail.mc, чтобы разрешить получение электронной почты из любой точки мира.

Чтобы закомментировать строку в sendmail.mc, просто поставьте dnl в начале строки.

2.2 Добавьте эту строку также в sendmail.mc над опцией «MAILER»

2.3 Добавьте полное имя хоста вашего ПК в этот файл.

4. Перекомпилируйте конфигурацию Sendmail

m4 — макропроцессор для компиляции файлов конфигурации Sendmail. m4 основывается на потоке, то есть не разбирается в строках.

Перезапустите сервис Sendmail

4. Настройка доменной маршрутизации электронной почты

Как вы прочитали выше, этот виртуальный файл используется для создания псевдонимов, позволяя размещать несколько виртуальных доменов на одном компьютере.

Установка и настройка Sendmail в среде Ubuntu

Программа Sendmail известна как достаточно старый почтовый агент. Она появилась ещё в 1983 году, но активно используется и по сей день. Среди ключевых особенностей — поддержка многими платформами, которые существуют сегодня, а также бесплатность. Приложение поставляется вместе с открытым исходным кодом. Это значит, что каждый желающий может добавить в него свою функциональность, или же изменить по желанию. В операционной системе Ubuntu, Sendmail, настройка которой выполняется благодаря командной строке Linux, прижилась благодаря хорошей поддержке и богатым возможностям.

Процессор сообщение — Sendmail — получил широкое распространение в бизнес сфере.

На сегодня достаточно распространён «процессор сообщений» Сендмейл Sentrion, который был создан с учётом нужд крупных компаний. Его отличительные черты — высокая производительность и хорошая интегрируемость со всеми бизнес-процессами. Sentrion предлагает наряду с новыми технологиями использовать и устаревшие приложения, которые хорошо прижились. Также приложение достаточно дружелюбно, чтобы подходить домашним пользователям.

Установка программы

Устанавливать Сендмейл нужно на базе локального сервера или web-сервера. Во втором случае почтовый агент будет более функционален. Чтобы получить все компоненты веб-сервера, вам потребуется стек компонентов LAMP. Его можно найти в репозитории.

Инсталляция Сендмейл начинается с помощью команды «sudo apt install sendmail», которая выполнит загрузку пакетов почтового агента.

Дальше нужно провести настройку файлов Host и самой программы Sendmail. Сделать это можно с помощью:

После этого требуется перезапустить службы самой программы, а также web-сервера Apache:

«sudo /etc/init.d/sendmail restart»
«sudo /etc/init.d/apache2 restart»

Если необходимо, можно установить утилиты для работы с почтой:

Проверяем тестирование работоспособности всей системы:

adamstac / gist:7462202

Install and configure Sendmail on Ubuntu

This should help you get Sendmail installed with basic configuration on Ubuntu.

  1. If sendmail isn’t installed, install it: sudo apt-get install sendmail
  2. Configure /etc/hosts file: nano /etc/hosts
  3. Make sure the line looks like this: 127.0.0.1 localhost yourhostname
  4. Run Sendmail’s config and answer ‘Y’ to everything: sudo sendmailconfig
  5. Restart apache sudo service apache2 restart

This comment has been minimized.

Copy link Quote reply

nelsons18 commented Jan 14, 2016

This should help you get Sendmail installed with basic configuration on Ubuntu.

This comment has been minimized.

Copy link Quote reply

ronalddas commented Sep 11, 2016

To find ‘yourhostname’, just type hostname in the terminal

This comment has been minimized.

Copy link Quote reply

tarrsalah commented Oct 27, 2016

I’m getting dsn=5.0.0, stat=Service unavailable in my /vatr/log/mail.log , did the exact same steps.

This comment has been minimized.

Copy link Quote reply

pritam1605 commented Jan 11, 2017

I am getting dsn=4.0.0, stat=Deferred: Connection timed out with alt4.gmail-smtp-in.l.google.com.

This comment has been minimized.

Copy link Quote reply

ericovva commented Apr 3, 2017

This comment has been minimized.

Copy link Quote reply

statmonkey commented Jul 22, 2017

grrr! embarrassed I needed this but I went arch for a few years and had forgotten my debian setup. Thanks for this. For local mail just add mutt and mailutils and your done.

This comment has been minimized.

Copy link Quote reply

ladsoftware commented Sep 15, 2017

not working for me.
mail() is returns true, but i’m not getting email at hotmail or gmail.

This comment has been minimized.

Copy link Quote reply

m-ric commented Sep 22, 2017

restart apache2 , really? Why would you need to do that?

This comment has been minimized.

Copy link Quote reply

stnc commented Oct 20, 2017

if lemp server is
sudo service nginx restart
service php7.0-fpm restart

This comment has been minimized.

Copy link Quote reply

yogesh-15git commented Oct 24, 2017

mail() is returning FALSE.. Not working for me (Ubuntu 16.04)

This comment has been minimized.

Copy link Quote reply

sensonicm commented Nov 7, 2017

I like such blabbering as @m-ric, just to say something .

on a clean server, do not forget to check whether you need a php-mail:
$ sudo apt-get install php-mail

To be sure, restart the server and execute the configuration with the command:
$ sudo /usr/sbin/sendmailconfig

Checking from the console (with the -v switch being traced):
$ echo «test message» | sendmail -v your@mail.com

You can also configure the settings in the php.ini: «. sendmail_path = /usr/sbin/sendmail -t -i»

I for example set up separately for each virtual host in my_vhost.conf:

php_admin_value sendmail_path «/usr/sbin/sendmail -t -i -f admin@example.com»

. many services, Google for example, require that a PTR record is specified, you can see this in the trace when the test is sent from the console with the key -v

This comment has been minimized.

Copy link Quote reply

yfarooq commented Nov 7, 2017

I followed the instruction and for some reason, i can get this working. here is my log

$ echo «test message» | sendmail -v reciver@me.com
reciver@me.com. Connecting to [127.0.0.1] via relay.
220 xyz.com ESMTP Sendmail 8.15.2/8.15.2/Debian-3; Wed, 8 Nov 2017 01:21:43 +0800; (No UCE/UBE) logging access from: localhost(OK)-localhost [127.0.0.1]

EHLO xyz.com
250-xyz.com Hello localhost [127.0.0.1], pleased to meet you
250-ENHANCEDSTATUSCODES
250-PIPELINING
250-EXPN
250-VERB
250-8BITMIME
250-SIZE
250-DSN
250-ETRN
250-AUTH DIGEST-MD5 CRAM-MD5
250-DELIVERBY
250 HELP
VERB
250 2.0.0 Verbose mode
MAIL From:sender@xyz.com SIZE=13 AUTH=sender@xyz.com
250 2.1.0 sender@xyz.com. Sender ok
RCPT To:reciver@me
DATA
250 2.1.5 reciver@me. Recipient ok
354 Enter mail, end with «.» on a line by itself
.

This comment has been minimized.

Copy link Quote reply

sensonicm commented Dec 28, 2017

Hi @yfarooq !
Congratulations on the coming New Year!
We would have made the world better if we told how we solved our problems)))
Or not yet solved?
The problem in determining the e-mail address in the listing about this is written, the address should be of the form: some@some.zone(add [.zone] to normal resolve mail address).

This comment has been minimized.

Copy link Quote reply

SavaNETgit commented Jan 7, 2018

Hi All,
sensonicm, How to do it ?
(add [.zone] to normal resolve mail address).

This comment has been minimized.

Copy link Quote reply

agnesyangwei commented Feb 1, 2018

Works for me. Greatly appreciated.

This comment has been minimized.

Copy link Quote reply

youssman commented Feb 12, 2018

Not working on ubuntu 16.04. It is hanging while trying to generate ssl certificates.

This comment has been minimized.

Copy link Quote reply

crmpicco commented Feb 19, 2018

Really useful, thanks.

This comment has been minimized.

Copy link Quote reply

sensonicm commented Feb 21, 2018

@SavaNETgit Hi all!
In the example above there was an address «reciever@me.com», you need to specify an address with a specific zone, e.g. «sensonicm@gmail.com» The example did not work because the service could not determine the address.
@youssman
Everything works, look in the internet for information — you need to create a certificate before installation. It hangs during installation on the generation of the certificate. Spend the time, look, I have no time. If you do not find write, I’ll find)

This comment has been minimized.

Copy link Quote reply

elewinso commented Mar 13, 2018

getting this error, help will be greatly appreciated.

Настройка DKIM-записи для работы с sendmail на сервере с Linux Ubuntu

Если вдруг перед вами встала задача использования Sendmail для отправки почты вместо использования альтернативных способов, стоит подумать о том, чтобы верно настроить DKIM-запись, чем обезопасить свою корреспонденцию от придирчивых спам-фильтров. Однако, не всегда этот процесс проходит просто и быстро. В сети множество инструкций о том, как это сделать, но итогом нескольких часов настройки стал собственный опыт и этот мануал.

Сегодняшняя инструкция протестирована на сервере с Linux Ubuntu 16.04.

Сначала установка sendmail

Тут всё просто. Достаточно выполнить команду:

sudo apt-get update

sudo apt-get install sendmail

Если не сработает, иногда приходится добавить также:

sudo apt-get install sensible-mda

sudo apt-get install sendmail-bin

После этого стоит обновить файл hosts, открыв его на редактирование командой:

sudo nano /etc/hosts

Добавляем туда строку:

127.0.0.1 localhost localhost.localdomain имя_вашего_хоста

Здесь обратите внимание на «имя вашего хоста», которое необходимо заменить на справедливое для вас значение.

Затем пересобираем конфиг и перезапускаем сервис:

service sendmail restart

Приступаем к DKIM

Нам потребуются пакеты. Доустанваливаем тех, что скорее всего, пока не хватает:

apt-get install opendkim opendkim-tools

Затем создаём директорию для хранения ключей:

mkdir -p /etc/opendkim/keys/ваш_домен_ру

Здесь и далее мы будем использовать в коде подстановку «ваш_домен_ру», которую необходимо заменить на соответствующее название домена. Будьте внимательны, это нам потребуется ещё ни один раз.

Далее потребуется сгенерировать ключи. Приватные будут храниться на вашем сервере, а публичные нужно будет прописать в виде DNS-записей у хостера. Здесь же придумываем название селектора, которое сейчас и в дальнейшем будем использовать. В нашем случае это будет слово «mail».

opendkim-genkey -D /etc/opendkim/keys/your-domain.com -d your-domain.com -s default

После выполнения команды в директории хранения ключей будет создано два файла с именами «mail.private» и «mail.txt».

Теперь назначаем верные права доступа и владельца:

chown -R opendkim:opendkim /etc/opendkim/keys/ващ_домен_ру

chmod 640 /etc/opendkim/keys/your-domain.com/mail.private

chmod 644 /etc/opendkim/keys/your-domain.com/mail.txt

Залезаем в конфиг командой:

sudo nano /etc/opendkim.conf

И вставляем туда эти строки (это пример работающего конфига, который подойдёт для большинства пользователей):

Теперь создаём те самые три файла, что описали в конфиге. Сначала первый:

sudo nano /etc/opendkim/KeyTable

sudo nano /etc/opendkim/SigningTable

Переходим к третьему:

sudo nano /etc/opendkim/TrustedHosts

Вставляем туда строки:

Снова конфигурируем sendmail, сообщая о том, что теперь есть подпись DKIM. Открываем на редактирование файл:

sudo nano /etc/mail/sendmail.mc

И добавляем в конец файла строку:

Редактируем ещё один конфиг:

sudo nano /etc/default/opendkim

Здесь нужно раскомментировать строку «SOCKET=»inet:8891@localhost»».

Затем снова пересобираем конфиг sendmail, перезапускаем службу и запускаем openDKIM:

service sendmail restart

service opendkim start

Пора добавить DNS-записи

Для начала нам потребуется просмотреть содержимое файла ключа:

В итоге увидим что-то в духе:

default._domainkey IN TXT ( «v=DKIM1; k=rsa; «

«p=MIGfMA0000qGSIb3DQEBAQUAA4GNADCxxxxBgQCgmHiX7BojGFoggggXa25Xs444WRhLmNpnv7777TY7FU4mG/WxtgrpV////Tzt3EZQ1/BpyICjlJZXIhgggguePnyd/iNFh4xKF3pi8yoqWB0eyq6KI/fXUbUWdd+NiU4ffffv89St92g24UFaElEl54XXCa6GlllldHFMetkBXwID/QAB» ) ; —— DKIM key default for droidnews.ru

Теперь в панели хостера необходимо добавить TXT-Запись «mail._domainkey» (здесь «mail» снова выбранный нами ранее селектор). В качестве значения указываем всё, что прописано в кавычках, включая кавычки.

Проверяем результат

Чтобы понять, верно ли у нас всё получилось, можно, например, воспользоваться сервисом https://www.mail-tester.com или http://www.isnotspam.com, http://www.appmaildev.com/en/dkim, https://mxtoolbox.com/SuperTool.aspx, которые расскажут о том, удалось отправить подписанное письмо с вашего сервера, а также проверить вашу DKIM-запись на валидность. Кроме того, даст ещё некоторые полезные советы, как повысить рейтинг вашего отправления, чтобы оно было успешно доставлено до адресата, минуя спам-фильтры.

Ещё пара полезных записей в DNS

Почтовые сервисы также одобрят у вас появление записи DMARC.

Для этого в панели хостера добавляем TXT-запись «_ваш_домен_ру» (первый знак нижнего подчёркивания надо оставить) со следующим значением «v=DMARC1; p=none».

Кроме того, добавим SPF-запись. TXT-запись с названием «ваш_домен_ру» и значением «v=spf1 a mx -all».

Теперь ваши письма должны всегда успешно доходить до адресатов.

Если вам интересны новости мира ИТ также сильно, как нам, подписывайтесь на наш Telegram-канал. Там все материалы появляются максимально оперативно. Или, может быть, вам удобнее «Вконтакте» или Twitter? Мы есть даже в Яндекс.Дзене.

Понравилась статья?

Тогда можно поддержать её лайком в соцсетях. На новости сайта вы ведь уже подписались выше? 😉

Или закинуть денег на зарплату авторам.

Или хотя бы оставить довольный комментарий, чтобы мы знали, какие темы наиболее интересны читателям. Кроме того, нас это вдохновляет. Форма комментариев ниже.

HOWTO setup ubuntu 18.04 sendmail+DKIM+SPF+DMARC или о том как мне удалось пробиться в бастион Gmail

Предисловие

На моем сервере крутится 2 отдельных домена. До истории с блокировками Роскомнадзора мы собирали трафик около 2000 посещений в сутки, а почтовый сервер отправлял в сутки около 200 писем на все популярные почтовые сервисы, в т.ч. Гугл и Яндекс. Все было здорово. Но как говорится в известном ролике: «Все было так хорошо, пока не пришел Навальный Роскомнадзор!

Теперь, когда нам удалось найти хостера, чьи IP адреса не попадают под блокировки государственной цензуры появилась другая проблема. Корпорация добра Гугл перестала дальше порога пускать нашего почтальона.

MX сервер google выбрасывает мою почту с примерно следующим сообщением: „Твое сообщение похоже на нежелательное, давай до свидания. “

Этой командой я отправлял тестовое сообщение:

Писать о своих танцах с бубном в попытках пробиться через спам-фильтры я не буду. Скажу только, что провозился я всю ночь, но добиться успеха смог только на следующий день. Именно поэтому я и решил написать сей мануал.

ИНСТРУКЦИЯ ПО НАСТРОЙКЕ SPF+DKIM НА UBUNTU 18.04

Крутизна данной инструкции в том, что она работает, в отличие от множества других. Я гарантирую, что как минимум 2 домена на 1 сервере ты сможешь настроить без особого труда.

1. Устанавливаем нужные пакеты

2. Настраиваем opendkim

Конфиг лежит тут: /etc/opendkim.conf

AutoRestart Yes
UMask 002
Syslog yes
AutoRestartRate 10/1h
Canonicalization relaxed/simple
ExternalIgnoreList refile:/etc/opendkim/TrustedHosts

InternalHosts refile:/etc/opendkim/TrustedHosts
KeyTable refile:/etc/opendkim/KeyTable
SigningTable refile:/etc/opendkim/SigningTable

LogWhy Yes
Mode sv
PidFile /var/run/opendkim/opendkim.pid
SignatureAlgorithm rsa-sha256
Socket inet:8891@localhost
SyslogSuccess Yes
TemporaryDirectory /var/tmp
UserID opendkim:opendkim

3. Настраиваем ключи и правила подписывания

Я опишу процедуру по созданию собственных ключей для тех, кто хочет полной автономности. Лично у меня используется яндексовый сервис «Почта для домена» pdd.yandex.ru, поэтому у меня ключи сгенерированные Яндексом.

Далее подключаем наш созданный или загруженный у Яндекса секретный ключ DKIM.

Нас интересуют вот эти три строчки из конфига opendkim:

В первом файле /etc/opendkim/TrustedHosts хранятся хосты, которые будут иметь доступ к серверу opendkim для подписывания писем.

Во втором файле /etc/opendkim/KeyTable хранится таблица секретных ключей и связанных с ними записей DKIM, которые представляют из себя следующее: [selector]._domainkey.[domain_name]

В третьем файле /etc/opendkim/SigningTable лежит таблица правил подписывания писем. Тут указано чьи письма и каким именно ключом подписывать.

4. Настройка sendmail

Настройка sendmail максимально проста. Нам всего лишь нужно добавить в конец файла прототипа конфига /etc/mail/sendmail.mc следующие строчки:

Чтобы почта по умолчанию отправлялась с правильного домена надо сделать еще одно изменение в файле /etc/mail/sendmail.mc

Ищем строку, похожую на эту: MASQUERADE_AS(`st-goods.ru’)dnl Заменяем на нужный домен. Именно этот домен будет использован в качестве обратного адреса по умолчанию. Обратите внимание, что кавычки там разные, строго говоря, первый знак ` называется гравис. Так зачем-то заведено в конфиге sendmail.

Теперь добавим записи в файл /etc/hosts Это нужно для того, чтобы sendmail пропускал письма через фильтр. Опытным путем установлено, что если не добавлять записей, все логи остаются девственно чистыми, не показывая ни одной ошибки, однако письма не подписываются.

Теперь надо пересобрать sendmail с новыми настройками.

Теперь наш сервер sendmail умеет пропускать исходящие письма через сервер opendkim, который добавляет цифровую подпись и шифрует заголовки отправляемых писем. Осталось опубликовать для принимающей стороны открытый ключ, чтобы можно было расшифровать заголовки и удостоверится, что заголовки не изменялись.

5. Настройки DKIM TXT записи на DNS сервере

Ключ надо подвесить на DNS сервере в строке типа TXT следующего содержания:
хост: mail._domainkey
значение: v=DKIM1; t=s; p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC2wtGTw/5KPjtlIEh282JY7ovxZ/8eqveFn9ivhzpYJldl3fBEOKw

Пояснения:
p= это наш открытый ключ
v= определяет номер версии DKIM
t= устанавливает флаги, по умолчанию флаги не устанавливаются. Существует 2 флага ‘y’ и ‘s’.
y говорит о том, что DKIM работает в тестовом режиме.
s означает режим, когда правая часть почтового адреса после @ должна полностью совпадать с доменом указанным в параметре d= DKIM подписи письма.

Хост надо указать в следующем виде: [selector]._domainkey
У нас селектор mail, поэтому хост будет таким: mail._domainkey

Открытый ключ надо вытащить из файла /etc/opendkim/keys/st-goods.ru/mail.txt

Ключ идет от p= до последней кавычки. Сами кавычки с пробелами надо удалить.

6. Настройка SPF

SPF (Sender Policy Frameword) это еще 1 технология защиты от спама, рассказывать про нее не буду. Только 2 слова для понимания сути этой технологии. В DNS записи домена аналогично открытому ключу DKIM записываются адреса серверов, которые имеют право отправлять почту с этого домена. Нам нужно прописать в этой записи ip адреса своего сервера. В моем случае в список также добавлен сервер Яндекса.

Вот пример моей записи:
хост: @
значение: v=spf1 a mx include:_spf.yandex.net ip4:173.249.51.13 ip6:2a02:c207:2018:3546::1

Синтаксис простой. Сначала указывается версия spf, а потом через пробел с плюсом или без него указываются адреса серверов, которые имеют право слать почту с этого домена. У меня указаны записи a и mx, что означает, что серверы из DNS записей A и MX тоже входят в список разрешенных. Через include: указан адрес сервера Яндекса, а дальше ipv4 и ipv6 адреса моего сервера.

all означает softfail «мягкий отказ». Т.е. все адреса, которые не перечислены в разрешенных все таки могут пройти по усмотрению принимающего сервера. -all означал бы жесткий отказ.

7. Настройка DMARC

Последний гвоздь для проникновения в бастион gmail — DMARC. DMARC устанавливает что нужно делать с письмами, которые не проходят проверку SPF или DKIM.

Все делаем точно также через DNS запись типа TXT.
хост: _dmarc
значение: v=DMARC1; p=none

Здесь мы устанавливаем, что если письма не прошли SPF или DKIM ничего делать не надо. Можно поставить p=reject. Тогда такие письма будут забракованы.

Отправляем себе письмо. echo «Subject: Hello baby!» | sendmail -v legale.legale@gmail.com

Смотрим последние записи лога почты. tail -f /var/log/mail.log | grep dkim
Должна появится строка похожая на эту:

Если строка есть, значит сервер sendmail и opendkim сработались и подписали твое письмо. Если такой строки нет, смотри раздел «Возможные проблемы».

Теперь смотрим, что получилось в почтовом ящике. Открываем письмо и нажимаем в правом верхнем углу письма кнопку со стрелкой вниз. В выпадающем меню выбираем пункт «Show original».

Вот что получилось у меня:

Возможные проблемы

Я искренне надеюсь, что нужды читать этот раздел не будет, но техника — вещь сложная… Иногда не понятно кто на кого работает.

Сначала проверяем все ли ты сделал в точной последовательность указанной в инструкции.
Сначала проверяем файл /etc/hosts на предмет корректности изменений в нем. У меня больше всего проблем было именно там. Дальше проверим системный лог на предмет ошибок dkim. Пока я ковырялся мне довелось столкнуться с ситуацией невозможности чтения opendkim секретного ключа, хотя я назначил владельцем файла пользователя opendkim. Дальше следует внимательно изучить лог выполнения команды sendmailconfig У меня был случай, что я использовал обычную одиночную кавычку вместо положенного грависа, а sendmailconfig ругался на это. Если ничего не помогло напиши мне и keep trying.

Linux.yaroslavl.ru

Руководство FreeBSD
Prev Chapter 20 Электронная почта Next

20.3 Настройка sendmail

sendmail использует следующие файлы настройки:

Имя файла Назначение
/etc/mail/access Файл базы данных доступа sendmail
/etc/mail/aliases Синонимы почтовых ящиков
/etc/mail/local-host-names Список хостов, для которых sendmail принимает почту
/etc/mail/mailer.conf Настройки почтовой программы
/etc/mail/mailertable Таблица доставки почтовой программы
/etc/mail/sendmail.cf Основной файл настройки sendmail
/etc/mail/virtusertable Таблицы виртуальных пользователей и доменов

20.3.1 /etc/mail/access

База данных доступа определяет список хостов или IP адресов, имеющих доступ к локальному почтовому серверу, а также тип предоставляемого доступа. Хосты могут быть перечислены как OK , REJECT , RELAY или просто переданы процедуре обработки ошибок sendmail с заданным сообщением об ошибке. Хостам, перечисленным с параметром по умолчанию OK , разрешено отправлять почты на этот хост, если адрес назначения почты принадлежит локальной машине. Все почтовые соединения от хостов, перечисленных с параметром REJECT , отбрасываются. Для хостов, перечисленных с параметром RELAY , разрешена передача через этот сервер почты с любым адресом назначения.

Example 20-1. Настройка базы данных доступа sendmail

В этом примере приведены пять записей. К отправителям, чей адрес соответствует записи в левой части таблицы, применяется правило записанное в правой части таблицы. В первых двух примерах код ошибки будет передан процедуре обработке ошибок sendmail. В этом случае на удаленном хосте будет получено соответствующее сообщение. В следующем примере почта отбрасывается почта от определенного хоста, another.source.of.spam. В четвертом примере разрешается прием почты от хоста okay.cyberspammer.com, имя которого более точно совпадает с этой записью, чем с cyberspammer.com в примере выше. При более точном совпадении правила перезаписываются. В последнем примере разрешается пересылка почты от хостов с IP адресами, начинающимися с 128.32. Эти хосты смогут отправлять почту через этот почтовый сервер для других почтовых серверов.

После обновления этого файла для обновления базы данных вам потребуется запустить make в каталоге /etc/mail/.

20.3.2 /etc/mail/aliases

База данных синонимов содержит список виртуальных почтовых ящиков, принадлежащих другим пользователям, файлам, программам или другим синонимам. Вот несколько примеров, которые могут быть использованы для /etc/mail/aliases:

Example 20-2. Mail Aliases

Формат файла прост; имя почтового ящика слева от двоеточия сопоставляется назначению(ям) справа. В первом примере производится простое сопоставление почтового ящика root почтовому ящику localuser, для которого затем опять будет произведен поиск в базе данных синонимов. Если совпадений не обнаружится, сообщение будет доставлено локальному пользователю localuser. В следующем примере приведен список рассылки. Почта на адрес ftp-bugs рассылается на три локальных почтовых ящика: joe, eric и paul. Обратите внимание, что удаленный почтовый ящик может быть задан в виде user@example.com . В следующем примере показана запись почты в файл, в данном случае /dev/null. И в последнем примере показано отправление почты программе, в данном случае почтовое сообщение переправляется через канал UNIX ® на стандартный вход /usr/local/bin/procmail.

После обновления этого файла вам потребуется запустить make в каталоге /etc/mail/ для обновления базы данных.

20.3.3 /etc/mail/local-host-names

В этом файле находится список имен хостов, принимаемых программой sendmail (8) в качестве локальных. Поместите в этот файл любые домены или хосты, для которых sendmail должен принимать почту. Например, если этот почтовый сервер должен принимать почту для домена example.com и хоста mail.example.com, его файл local-host-names может выглядеть примерно так:

После обновления этого файла необходимо перезапустить sendmail (8) , чтобы он смог перечитать изменения.

20.3.4 /etc/mail/sendmail.cf

Основной файл настройки sendmail, sendmail.cf управляет общим поведением sendmail, включая все, от перезаписи почтовых адресов до отправки удаленным серверам сообщений об отказе от пересылки почты. Конечно, файл настройки с таким многообразием возможностей очень сложен и подробное его описание выходит за рамки данного раздела. К счастью, для стандартных почтовых серверов изменять этот файл придется не часто.

Основной файл настройки sendmail может быть собран из макроса m4 (1) , определяющего возможности и поведение sendmail. Подробнее этот процесс описан в файле /usr/src/contrib/sendmail/cf/README.

Для применения изменений после правки файла необходимо перезапустить sendmail.

20.3.5 /etc/mail/virtusertable

Файл virtusertable сопоставляет виртуальные почтовые домены и почтовые ящики реальным почтовым ящикам. Эти почтовые ящики могут быть локальными, удаленными, синонимами, определенными в /etc/mail/aliases, или файлами.

Example 20-3. Пример таблицы виртуального домена

В примере выше мы видим сопоставление адресов для домена example.com. Почта обрабатывается по первому совпадению с записью в этом файле. Первая запись сопоставляет адрес root@example.com локальному почтовому ящику root. Вторая запись сопоставляет postmaster@example.com локальному почтовому ящику postmaster на хосте noc.example.net. Наконец, до этого момента адрес в домене example.com не совпал ни с одним из предыдущих, будет применено последнее сопоставление, в которому соответствует всякое другое почтовое сообщение, отправленное на любой адрес в example.com. Это сообщение будет доставлено в локальный почтовый ящик joe.

Prev Home Next
Использование электронной почты Up Установка другой почтовой программы

По вопросам связанными с FreeBSD, прочитайте документацию прежде чем писать в .
По вопросам связанным с этой документацией, пишите .
По вопросам связанным с русским переводом документации, пишите в рассылку .
Информация по подписке на эту рассылку находится на сайте проекта перевода.

Установка и настройка Sendmail в среде Ubuntu

Я не администратор, поэтому относитесь к этой заметке с осторожностью.
Рассматривается такя ситуация: надо заставить sendmail сервера отправлять почту, но ничего в ответ не принимать. Строго для оповещений с сайтов. У меня вдс-ка с предустановленным exim4 на который, насколько я понимаю, «ссылается» sendmail. Т.е. фактически работает exim4.

Сначала настраиваем хост (my-host-name это имя нашего хоста с которого все будет ездить) В файле должны быть строки вида Далее меняем имя хоста в файле Файл должен выглядеть вот так (полностью, т.е. только имя хоста и все) Теперь перегружаем службу которая грубо говоря обновляет имя хоста глобально REM ещё такой вариант есть, для Debian 9 (stretch) Теперь выполняем команды Если все правильно сделано, то они обе должны вернуть значение my-host-name (т.е. имя вашего хоста)

Теперь надо настроить сам sendmail. В моем случае, нужно перенастроеить exim4. Делается это примерно так: После этого в мастере просто нужно выбирать значения (именно для exim4)

  • internet site..
  • вводим название вашего хоста (my-host-name)
  • ip для smtp устанавливаем только 127.0.0.1 т.к. нам не нужны внешние подключения по smtp
  • другие допустимые назначения оставляем по умолчанию
  • домены для разрешенного релея — оставляем пустым
  • машины для релея — оставляем пустым
  • кол-во днс запросов на ваше усмотрение, я не ограничивал
  • метод доставки я оставил тот же который был, т.е. /var/mail
  • разделять не разделять файлы конфигурации — на ваше усмотрение, аргументы там описаны, я разделять не стал

Теперь, чтобы проверить ходит ли почта делаем так Далее вводим тект тестового сообщения. И по готовности нажимаем Ctrl+d
Идем проверяем свою почту. Если письмо пришло — все ок и ура. Если нет — идем гуглить дальше 🙂

Дальше надо убедиться что на нашем сервере недоступен smtp, для этого нам надо сходить с локальной машины постучаться в 25 порт сервера и получить отлуп. Делается это например так: Если все так, то все тип-топ. Порт закрыт.

Ещё маленькая фишка. Бывает так что по каким-то причинам, сервис рулящий веб-приложением надо перезапускать регулярно. В моем случае это node.js и делаю я это по крону раз в N времени. Так вот если перезапустить процесс кроном, то sendmail перестает работать, потому как приложение не знает где он, в path пути до него просто нет и соот-но он просто не находится. Точно так же можно передавать любые другие настройки переменных окружения. Как это делать смотрим ниже.

Сначала посмотрим где sendmail Ок, видим путь. Если вдруг не видим то идем смотреть тоже самое но под sudo. Теперь идем в кронтаб и добавляем переменные окружения там. Откроется редактирование заданий для текущего пользователя. То есть все задания будут выполнены с правами текущего пользователя и сервис запустится с правами этого пользователя, если он запускается конечно согласно вашему плану 🙂

Ну вот примерно так. Прошу не воспринимать эту заметку как полное руководство к действию, вполне возможно что для вашего случая все будет значительно отличаться. Но возможно это как-то поможет или хотя бы наведет на мысли в нужном направлении 🙂 Успехов!

Пользовался вот этим источником. Рекомендую на него взглянуть, надеюсь он ещё дышит.

Предложение от 8host.com

Установка и настройка SMTP-сервера передачи сообщений Postfix в Ubuntu 14.04

Postfix – это агент пересылки сообщений (англ. Mail Transfer Agent, или MTA), приложение для отправки и получения электронной почты. В данном руководстве показано, как установить и настроить Postfix только для отправки сообщений локальных приложений (то есть, приложений, установленных на одном сервере с Postfix).

Зачем это нужно?

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

Отличным примером приложения для отправки оповещений является OSSEC; эта система может отправлять предупреждения на любой указанный адрес электронной почты. Как и многие другие приложения такого рода, OSSEC может использовать для отправки уведомлений как SMTP-сервер стороннего поставщика, так и локальный SMTP-сервер передачи сообщений.

Примечание: при необходимости получать уведомления с сервера только на один адрес рекомендуется создать белый список электронных адресов, которые могут случайно попасть в спам.

Если же сервер должен отправлять извещения потенциальным пользователям сайта (например, электронные подтверждения регистрации), нужно защитить домен от спамеров; тогда извещения сервера с меньшей вероятностью будут помечены как спам.

Требования

Для выполнения данного руководства нужны:

  • Предварительно настроенный сервер Ubuntu 14.04 и учетная запись пользователя с расширенными привилегиями sudo;
  • Валидное доменное имя (в данном руководстве используется условный домен example.com).

Имя хоста сервера должно соответствовать этому домену или поддомену. Чтобы проверить имя хоста сервера, введите в командную строку hostname. Вывод должен совпадать с именем сервера, которое он получил при создании (например, example.com).

1: Установка Postfix

Чтобы установить Postfix, а заодно и ряд других программ, необходимых для настройки почты, просто установите пакет mailutils:

sudo apt-get install mailutils

Вместе с пакетом mailutils будет установлен Postfix и его зависимости. Вывод команды выглядит примерно так:

The following NEW packages will be installed:
guile-2.0-libs libgsasl7 libkyotocabinet16 libltdl7 liblzo2-2 libmailutils4 libmysqlclient18 libntlm0 libunistring0 mailutils mailutils-common mysql-common postfix ssl-cert
0 upgraded, 14 newly installed, 0 to remove and 3 not upgraded.
Need to get 5,481 kB of archives.
After this operation, 26.9 MB of additional disk space will be used.
Do you want to continue? [Y/n]

Чтобы установить все вышеперечисленные пакеты, нажмите ENTER. В конце установки появится окно настройки Postfix, в котором нужно выбрать тип почтовой настройки; опция по умолчанию – Internet Site, что полнее удовлетворяет требования данного руководства (чтобы подтвердить, нажмите TAB и ENTER).

После этого появится новое окно настройки Postfix с полем System mail name. Это поле должно совпадать с именем сервера, которое вы выбрали при его создании. Укажите имя, а затем нажмите TAB и ENTER.

Примечание: Если в строке появляется поддомен вроде first.example.com, сократите его до example.com.

2: Настройка Postfix

Данный раздел покажет, как настроить Postfix для отправки сообщений с сервера, на котором он установлен (то есть, с локального хоста).

Для этого Postfix должен быть настроен на прослушивание только интерфейса внутренней петли (loopback interface) – это виртуальный сетевой интерфейс, который используется сервером для внутреннего взаимодействия. Откройте конфигурационный файл Postfix с помощью редактора nano:

sudo nano /etc/postfix/main.cf

Найдите в нем следующий блок кода:

mailbox_size_limit = 0
recipient_delimiter = +
inet_interfaces = all

Замените строку inet_interfaces = all строкой inet_interfaces = loopback-only. Теперь этот блок выглядит так:

mailbox_size_limit = 0
recipient_delimiter = +
inet_interfaces = loopback-only

Вместо loopback-only можно также использовать localhost:

mailbox_size_limit = 0
recipient_delimiter = +
inet_interfaces = localhost

Завершив редактирование файла, сохраните изменения и закройте его (CTRL+X, затем Y и ENTER). После этого перезапустите Postfix:

sudo service postfix restart

3: Тестирование SMTP-сервера

Теперь необходимо проверить, может ли Postfix отправлять сообщения на внешний электронный адрес. Для этого используется команда mail, которая также входит в пакет mailutils.

Итак, чтобы отправить тестовое сообщение, наберите:

echo «This is the body of the email» | mail -s «This is the subject line» user@example.com

Примечание: Вместо user@example.com используйте валидный адрес электронной почты.

Проверьте почтовый ящик, на который было отправлено сообщение. Если отправленное сообщение не появилось, проверьте папку спама.

Примечание: В данном руководстве используется условный адрес gunter@example.com, где gunter – имя пользователя Linux, а домен – имя хоста сервера (эту строку нужно указать в поле From).

4: Форвардинг почты

В завершение нужно настроить пересылку почты (или форвардинг), чтобы сервер мог предавать сообщения, отправленные пользователю root, на ваш персональный внешний адрес.

Чтобы Postfix отправлял сгенерированные системой сообщения на ваш почтовый адрес, отредактируйте файл /etc/aliases.

sudo nano /etc/aliases

В стандартной установке Ubuntu 14.04 этот файл выглядит так:

# See man 5 aliases for format
postmaster: root

Эта настройка передает сообщения системы пользователю root. Теперь нужно сделать так, чтобы сообщения перенаправлялись на ваш адрес электронной почты. Для этого внесите в файл строку:

# See man 5 aliases for format
postmaster: root
root: gunter@example.com

Замените gunter@example.com своим личным адресом электронной почты. Сохраните и закройте файл. Чтобы изменения вступили в силу, выполните следующую команду:

Теперь протестируйте форвардинг, отправив сообщение пользователю root:

echo «This is the body of the email» | mail -s «This is the subject line» root

Это сообщение должно появиться в вашем почтовом ящике (если нет – проверьте папку спама).

А что делать если по незнанию во время установки Postfix выбрал опцию «без настройки»?

Pavel:
sudo apt-get purge mailutils
это удалит неправильно настроенный postfix
и потом повторить соответствующую часть инструкции

sudo dpkg-reconfigure postfix
и откроется начальные настройки postfix.

почему пишете подробных примеров как настроить конфиг postfix новечку разобратся нет сил

Настройка sendmail на localhost под Ubuntu 13.04

Руководство по установке и настройке одного из старейших MTA (Mail Transfer Agent), программа для отправки электронной почты — sendmail , который доступен для установки на любой операционной системе. Во многих ОСях sendmail установлен по умолчанию и менять этот стандартный MTA на другой особой необходимости нет. При этом, тот же PHP по дефолту настроен на работу именно с этим MTA. Если настройка sendmail затягивается — ставьте postfix (Настройка postfix на localhost под Ubuntu 13.04), не стоит терять много времени.

Подготовка

Проверьте установлен ли у вас sendmail , а не exim4 или другой MTA:

Настройка /etc/hosts

Примечание

Необходимо указать ваш основной хост (имя компьютера, у меня это e5530 ) и localhost.localdomain иначе вы получите ошибку: My unqualified host name (myhostname) unknown; sleeping for retry» и «unable to qualify my own domain name (e5530) – using short name , sendmail долго стартует и медленно отправляет почту. Возможно хост localhost.localdomain можно пропустить, не уверен.

После этого нужно указать имена локальных хостов, от которых sendmail будет принимать запросы на отправку email сообщений, в файле /etc/mail/local-host-names :

Авторизация на relay сервере gmail

Правим файл /etc/mail/auth/client-info :

Примечание

Вместо порта 465 можете попытаться стучать на 587 (если есть проблемы с авторизацией):

Проверьте права на доступ к файлам авторизации (600) и установите нужные, если отличаются:

Конфиг sendmail.mc

Файл конфига /etc/mail/sendmail.mc . Сравните ваш конфиг. Должно быть как-то так.. Порядок инструкций важен!

Применяем конфиг sendmail

Проблемы и решения

Если все настроено правильно но сообщения попадают в «отложенную очередь» и не релеятся на другой SMTP :

  1. Проверьте ваш IP’шник в блек-листах. Проверить бан IP можно тут smart-ip.net, мой IP попал в базу spamhaus’а.
  2. Проверьте не блокирует ли провайдер исходящие пакеты на 25 порт.
Проблемы с Интертелекомом!

У меня так и не получилось настроить релей сообщений на GMail через sendmail на Интертелекомовском подключении — sendmail упорно стучался на 25 порт, который закрыт провайдером. Пришлось настраивать postfix .

Настройка PHP (если необходимо)

Укажите параметры запуска sendmail в конфиге /etc/php5/apache2/php.ini ( /etc/php5/cli/php.ini ):

Проверим настройки

Для проверки postfix попробуйте отправить несколько сообщений из консоли. Как это делать я расписал в этой статье: «Отправка Email сообщений из консоли  ».

Управление sendmail

Посмотреть всю очередь сообщений:

Посмотреть очередь сообщений по определенному адресу:

Очистить всю очередь сообщений sendmail :

Очистить очередь сообщений sendmail по адресату:

Ссылка на основную публикацию