Як налаштувати сервер електронної пошти?


59

У моєму VPS працює Ubuntu, і я хотів би отримувати електронну пошту до свого домену.

Як мені легко налаштувати поштовий сервер для цього?


3
Чудове запитання, я чекаю чудової відповіді. Я створив пару поштових серверів протягом багатьох років, і це ніколи не було просто. Багато рішень: який SMS-сервер, що IMAP / POP, як зберігати пошту, як зберігати користувачів ... Я не можу дати просту відповідь.
Хав'єр Рівера

Відповіді:


48

Ось так я налаштовував пошту на наші виробничі машини. Це критерії, які нам були потрібні:

  • Облікові записи електронної пошти
  • Псевдоніми електронної пошти (експедитори)
  • IMAP, POP3 та SMTP

"Легко" (tl; dr)

По-перше, я хочу розглянути те, що могло б виявитись найпростішим рішенням.

sudo tasksel install mail-server

Проблеми з цим виникли, коли ми спробували це: спочатку він встановлює Dovecot, що добре для більшості, але ми вважали, що кур'єр кращий з двох для наших потреб. По-друге, він використовує Postfix, який чудово, але нам також потрібен Exim, оскільки це більш потужний MTA / SMTP-сервер. По-третє, він встановлює MySQL - в конфігурації, яку я використовую, ми віддаємо перевагу рівним файлам для конфігурації, оскільки це одна менша точка розриву. Подумайте, що трапилося б, якщо MySQL зазнав аварії з незрозумілої причини. В іншому випадку решта пакетів є досить прямим вперед та простий у обслуговуванні для невеликої поштової служби (подумайте, всього 1-2 домену електронної пошти).

Наша конфігурація

Структура каталогів

Ми трохи відхиляємось від шляху звичайних конфігурацій, але це полегшує управління.

Вся наша пошта зберігається в /var/mail/virtual/<domain>/<user>/mailвідношенні майбутніх прикладів , які я буду використовувати email@example.com, fwd@example.com, foo@example.comщоб представити адресу електронної пошти, форвардер , щоб піти example@gmail.comі поганий адресу відповідно. У наведеному вище прикладі це було б /var/mail/virtual/example.com/email/mail.

Я також підтримую список усіх доменів на сервері, /etc/valiasesале докладніше про це пізніше.

Постфікс

Це більш-менш легка частина налаштування. Просто встановіть postfixпакет.

Exim

Встановити Exim за допомогою apt-get install exim4 exim4-base exim4-config exim4-daemon-heavyодного разу після встановлення вам потрібно буде відредагувати конфігурацію за замовчуванням exim, щоб замінити або додати такі значення:

domainlist local_domains = @:localhost:dsearch;/etc/valiases:dsearch;/var/mail/virtual
daemon_smtp_ports = smtp : 587 : 465
MAIN_TLS_ENABLE = yes

(Ці рядки з’являться в різних частинах файлу, замінюючи їх відповідно)

Після завершення відновлення конфігурації exim за допомогою update-exim4.confцього завершуються зміни, необхідні для Exim

Кур'єр

Встановіть Courier з courier-baseцим необхідно встановити courier-authdaemon, courier-authlib*, courier-imap*, courier-pop*, courieruserinfo,courier-ssl

Там, чесно кажучи, не так багато конфігурації поза стандартом. Вам просто потрібно буде створити базу даних користувачів.

Рахунки

Exim та Courier перевіряють кілька місць, щоб перевірити, чи вхідні дані або електронна пошта є дійсними. Exim перевіряє, чи домен вказаний як локальне ім'я хоста, чи він у домені, /var/mail/virtualчи в ньому домен /etc/valiases.

Створення облікових записів електронної пошти

Врешті-решт я створив кілька інструментів для впорядкування цього процесу, але додавання нового користувача підходить до мети:

mkdir -p /var/mail/virtual/example.com/email
chown -R mail.mail /var/mail/virtual/example.com/
maildirmake /var/mail/virtual/example.com/email/mail
chown -R mail.mail /var/mail/virtual/example.com/

Потім додайте адресу до courier userdb - щоб вони могли увійти

userdb email@example.com set uid=8 gid=8 home=/var/mail/virtual/example.com/email mail=/var/mail/virtual/example.com/email/mail

Обов’язково замініть значення, де це доречно. Також - uidі gid повинні бути числові ідентифікатори користувача / групи для користувача пошти.

userdbpw -md5 | userdb email@example.com set systempw

Це дозволить вам ввести пароль, введіть той, який ви хочете використовувати для облікового запису.

makeuserdb

Нарешті, генеруйте хеш-тіні файлів userdb. Перезапустіть кур’єр і протестуйте, чи змінюються ваші зміни:

authtest email@example.com

Слід створити щось подібне

Authentication succeeded.

     Authenticated: email@example.com  (uid 8, gid 8)
    Home Directory: /var/mail/virtual/example.com/email
           Maildir: /var/mail/virtual/example.com/email/mail
             Quota: (none)
Encrypted Password: $1$LOLCATS$THISWILLBEAHASH.
Cleartext Password: (none)
           Options: (none)

Якщо ви бачите "Підтвердження автентифікації не вдалося: Операція не дозволена" замість цього редагуйте / etc / courier / authdaemonrc та додайте authuserdb до рядка authmodulelist.

Після підтвердження всіх тестів перезапустіть різні сервіси ( courier-authdaemon, exim4), відкрийте порти 143, 25, 586, 495, 110 та налаштуйте акаунти у вашому улюбленому поштовому клієнті.

Створення псевдонімів електронної пошти

Для кожного домену слід створити файл у /etc/valiases(створити, якщо його не існує) принаймні з наступного рядка:

*: :fail: No user at this address.

Що це говорить: Якщо вхідна пошта не відповідає жодному обліковому запису електронної пошти, який я маю у файлі, то повідомлення не повинно бути відхиленим та відхилено повідомленням: "Немає користувача за цією адресою". Тому вся пошта, надіслана на те, щоб сказати: foo@example.comбуде відхилена як збій.

Однак у нас є кілька електронних адрес, які ми хочемо зберегти в іншому місці - скажімо, example@gmail.com - для цього нам потрібно створити, /etc/valiases/example.comа вміст файлу має бути таким:

fwd: example@gmail.com
*: :fail: No user at this address.

Таким чином, незважаючи на те, що fwd@example.com не відповідає жодним обліковим записам електронної пошти на сервері, він збігається у /etc/valiasesфайлі, а пошта буде передана на адресу example@gmail.com - Однак foo@example.com все одно не вдасться повідомлення "Немає користувача за цією адресою".


11
Це посилання з номером ISBN?
Веслі

1
@WesleyDavid Я не думаю, що моя історія башів з'явиться як ISBN :)
Marco Ceppi

Тільки слідуючи цим - дуже вдячний - я відредагував вище, щоб висвітлити помилку, яку я отримав із рядком аутентифікації.
Даррен Грівз

@DarrenGreaves Дякую! Я радий, що це допомогло і дякую за оновлення!
Марко Цеппі

Я намагаюся зробити все це робочим - я отримав маршрутизацію валіаз на роботу лише тоді, коли я додав (відредагований для шляхів) 350 файлів маршрутизації з debian-administration.org/articles/140 - речі з віртуальних доменів взагалі не працюють - чи потрібно було взагалі додати файли маршрутизації? Та.
Даррен Гірвз

14

Найпростіший спосіб - бігати sudo tasksel install mail-server. Це дасть вам сервер електронної пошти із здоровими значеннями за замовчуванням. Все, що вам потрібно зробити - це відповісти на кілька запитань. Очевидно, ви все ще можете робити конфігурації вручну після цього, якщо це необхідно, але в більшості випадків цього не буде. Просто дотримуйтесь вказівок на екрані, і вам слід добре.

Читання по адміністрації служб електронної пошти абсолютно рекомендується.

Офіційні довідки:


Чи є ледачий спосіб побачити, що буде робити (пакунки, які він встановить, налаштування за замовчуванням) ?. Під лінь я маю на увазі, не встановлюючи його сам.
Хав'єр Рівера

@Javier ви можете переглянути, який вміст встановлено, запустившиsudo tasksel --task-packages mail-server
Marco Ceppi

Конфігурація зберігається в MySQL, немає анти-спаму, немає антивірусу ... для нас це не дуже корисно :(.
Хав'єр Рівера


4

Просто я займаюся цим самим, вам дійсно потрібен постфікс, і в моєму випадку я хотів також сервер Imap, щоб я міг користуватися чудовим клієнтом gui (не згадуючи жодних імен) на іншій машині. Я використав ці документи:

Постфікс

Голуб (іміп і попп)

Насправді це дуже просто, підняв його і запустив за кілька хвилин, і я отримую електронні листи. Це також корисно , щоб перевірити , що все встановлено ки pingability .

О, і вам, звичайно, доведеться правильно встановити записи в dns, як показано нижче (виходячи з налаштувань, які працювали для мене):

name   type   content
  @      A     ???.???.??.??    
mail     A     ???.???.??.??

і

         MX Records
Name                 Priority
mail.mydomain.com.      1
mail2.mydomain.com.     2

Зверніть увагу на повну зупинку в кінці поштових серверів та вставте свою ip адресу та доменне ім'я, де це доречно.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.