Навіщо мені потрібен SMTP-сервер?


92

Чому для надсилання пошти мені потрібен проміжний сервер SMTP? Чому мій клієнт (Outlook, Thunderbird) не може надсилати повідомлення безпосередньо SMTP-домену одержувача?

Наприклад, якщо мені доведеться надіслати електронний лист address@example.comіз моїм обліковим записом Gmail, я надсилаю його на smtp.gmail.comсервер; і тоді цей сервер надішле моє повідомлення на MX-сервер на example.com.


Відповіді:


114

Технічно можливо надіслати електронний лист безпосередньо на SMTP-сервер одержувача зі свого комп’ютера.

Дивлячись на це з історичної бази, якщо віддалений сервер SMTP не працює, ви хочете, щоб система автоматично обробляла його і продовжувала його повторювати - значить, у вас є SMTP-сервер. Так само в старі часи не всі поштові сервери були підключені весь час - міжміські зв’язки були дорогими, тому пошта була б у черзі та відправлена ​​при встановленні зв'язку.

Якщо перейти туди, де Інтернет дешевий, все ще корисно мати механізми для повторного надсилання електронної пошти, якщо сервер недоступний, і це не ідеально, щоб ця функціональність була записана в MUA (поштовий агент користувача / поштова програма кінцевого користувача). Ці функції вписуються в MTA (поштовий сервер / SMTP-сервер).

Але стає гірше - спамери . Більшість електронних листів (більше 80%) - це спам. Тому постачальники пошти роблять все можливе, щоб зменшити цю проблему - і велика кількість методів роблять припущення щодо способу доставки електронної пошти - важливі моменти:

  1. Повторне відображення: Деякі постачальники автоматично припинять поштове з'єднання, якщо відправник та одержувач раніше не спілкувались, і очікують, що вони спробують вдруге - адже спамери часто цього не роблять, тоді як SMTP-сервер завжди повинен. Це зменшує обсяги спаму приблизно на 80%. Хоча це робити хоч.

  2. Репутація: Це набагато більше шансів, що хтось, хто надсилає електронну пошту через авторитетний, відомий SMTP-сервер, легітимніший, ніж сервер "польоту". Щоб відчути репутацію, провайдери виконують ряд речей:

    1. Блокуйте динамічні / клієнтські адреси (не 100%, але великі шматки Інтернету не відображені).

    2. Подивіться, що зворотний DNS відповідає вперед DNS: Це не дуже важко зробити, але показує певний рівень підзвітності та знання найкращих практик - і щось багато блоків адреси клієнтів не має.

    3. Репутація. Під час спілкування з іншими SMTP-серверами багато постачальників відстежують кількість спаму та обсяги відправлених електронних листів і можуть зменшити кількість спаму, обмеживши з'єднання та слідкуючи за цими параметрами. (Є багато способів, як це зробити, не всі вони очевидні, але для цього потрібен відомий відправник).

    4. SPF та DKIM: Ці механізми прив'язують ресурси DNS до доменного імені, щоб зробити підробку пошти важче і важко (але не обов'язково неможливо розгорнути, якщо поштова програма (MUA) відповідає за вихідну пошту. (Додано, щоб зробити цю відповідь більше Повна, як це вже прийнято. Заслуга за це має бути розміщена на плакатах нижче, оскільки вона прослизнула, але, тим не менш, дуже дійсна)

Можливо, є й інші незначні проблеми, але це були б основні проблеми.


19
Не забувайте про такі не зовсім незначні речі, як SPF (білі списки хостів, яким дозволено надсилати пошту для домену) та DKIM (повідомлення цифровим підписом на рівні домену) - особливо останнє можливе лише за допомогою спеціальної ретрансляції.
grawity

@grawity Безумовно, варто згадати, але чому DKIM "не можливий" без спеціальної реле? Селектори DKIM не прив'язані до програми надсилання або IP-адреси. Якщо ваш поштовий клієнт може підписати повідомлення опублікованим ключем, воно є таким же дійсним, як і будь-який інший підписант.
Матіас Р. Єссен

2
@ManuH: Відповідно до показників тонкої відповіді, звичайна пошта загрожує 1/5 обсягу пошти. Відповідно до показників на моєму сервері, звичайна пошта знижує 1/20 обсягу пошти. Це приголомшлива торгівля.
dotancohen

1
@manuh: Грайлістинг працює, закриваючи з'єднання до надсилання електронного листа - він прослуховує лише до того моменту, поки не отримає відправника та одержувача - які знаходяться у заголовку. Також деякі грайлістські системи будуть негайно. прийняти всю електронну пошту з сервера smtp, який має історію повторної доставки. На жаль, це дуже ефективно.
davidgo

4
Можна додати, що в "добрі дні" пошта часто надсилалася з одного SMTP-сервера на інший, потім інший, потім інший, перш ніж досягти місця призначення. Зазвичай це спрацювало нормально, але, наприклад, під час нападу на rtm-черв'яків, один із комп'ютерів, що вниз, був одним із найважливіших поштових ретрансляторів, тому повідомлення електронної пошти з попередженням, рішеннями та виправленнями хробака може зайняти цілих 48 годин. їх одержувачів.
Баард Копперуд

32

Чому для надсилання пошти мені потрібен проміжний сервер SMTP? Чому мій клієнт (Outlook, Thunderbird) не може надсилати повідомлення безпосередньо SMTP-домену одержувача?

У 1991 році - і більшу частину початку 1990-х, і навіть раніше - ви можете зробити те, що описуєте. Але реальність у 2015 році полягає в тому, що в той час як технічно можна надіслати електронний лист будь-кому з будь-якої машини, на якій встановлена ​​поштова служба, світ SPAM зробив цей метод ефективно марним.

Коли ви використовуєте "реальну" службу SMTP, такі параметри встановлюються як записи PTR, SPF-записи і навіть DomainKeys, які встановлені лише для однієї цілі і однієї цілі: підтвердити, що SMTP, що надсилає повідомлення, є законним. А якщо це не так? Фільтруйте повідомлення в папку СПАМ або "велика прірва" видалення. Ось розбивка того, що є кожним із цих елементів:

  • PTR (запис вказівника / зворотний запис DNS): перевірка рівня сервера. Як пояснено тут , запис PTR використовується для відображення мережевого інтерфейсу (IP) на ім'я хоста. Це означає, якщо у вас 123.456.789.0на сервері SMTP є адреса, що надсилає електронні листи, для smtp.example.comцього буде відповідна запис PTR smtp.example.com. Здається, це дуже просто, але це працює, оскільки єдиний, хто дійсно може встановити запис PTR, є власником IP-адреси, і його можна встановити лише на їх апаратному забезпеченні. Таким чином, він виступає як пункт перевірки щодо того, хто володіє / управляє / управляє цією IP-адресою.

  • SPF (Sender Policy Framework): Перевірка початкового рівня DNS імені хоста. Запис SPF - як пояснено тут - це в основному запис DNS, встановлений власником доменного імені, який надає список IP-адрес та імен хостів серверів, яким дозволено надсилати електронні листи для цього доменного імені. Це знову - ще один крок перевірки, який гарантує, що тільки справжній власник доменного імені для SMTP-сервера може надсилати пошту. Скажімо, сервер з ІР-адресою 123.456.789.9надсилає електронні листи для example.com. Ми вже знаємо, що smtp.example.comвикористовує 123.456.789.0, але запис SPF для запису example.comможе стверджувати: "Ей! 123.456.789.9це гарний сервер! Він законний! Поважайте його електронні листи! "

  • DKIM (ідентифікована пошта DomainKeys): підтвердження рівня електронної пошти. Як пояснено тут і у Вікіпедії , "DKIM - це система перевірки електронної пошти, розроблена для виявлення підробки електронної пошти, забезпечуючи механізм, який дозволяє приймати обмінники пошти для перевірки того, що вхідну пошту з домену дозволено адміністраторами цього домену та що електронна пошта (включаючи вкладення) не було змінено під час транспортування. "Використовуючи криптографічні хеші, DKIM перевіряє, що сама пошта не була відфільтрована або підроблена під час транзиту. Це також служить ще однією точкою підтвердження у ланцюжку "Ви законний чи ви СПАМ?"

Отже, врешті-решт, на відкритому для всіх сервері SMTP-сервері, що вартує нічого, буде встановлено щонайменше два з цих елементів (PTR та SPF), встановлені для перевірки того, що SMTP-сервер та пов’язана з ним електронна пошта є законними. Не всі використовують DKIM, але це ще один шар валідації, який стає все більш популярним у наш час, оскільки СПАМЕРИ стають більш наполегливими у своїх зусиллях надсилати СПАМ.


15

Більшість житлових провайдерів блокують TCP-порт 25 (SMTP), щоб не допустити участі в спам-мережі. Якщо ваш ПК заразиться, ваш комп'ютер може почати розшукувати спам за бажанням когось іншого.


Ви пишете "Більшість житлових провайдерів блокують TCP-порт 25 (SMTP)" <- ви могли б детальніше розглянути, що це означає. Ви маєте на увазі, що вони не дозволять вам здійснити вихідне з'єднання з сервером SMTP на порт 25? Або ви хочете сказати, що вони не дозволять вам отримати з'єднання через порт 25?
барлоп

2
@barlop the first - вони блокують вихідні з'єднання на 25 від житлових посилань до машин, відмінних від власних поштових серверів (або взагалі куди завгодно, оскільки вони можуть використовувати 587 або 465 для власних серверів). Однак, дещо перебільшенням можна сказати, що більшість провайдерів це роблять.
варення

2
@hobbs - Мій досвід (і це справедлива частина моєї роботи) інший. Хоча багато провайдерів блокують трафік, залишаючи свою мережу з цільовим портом 25 (який змушує порт 25 трафіку через їх поштові сервери), те саме, як правило, не стосується портів 587 або 465 - і це дійсно має сенс. Порти 587 та 465 ВЗАЄМНО вимагають аутентифікацію та блокування, а саме MUA до MTA, а не MTA-MTA - Блокування цих портів призведе до величезного люфту, оскільки багато компаній вимагають цього, щоб дозволяти роумінгу, підзвітності та не порушувати SPF.
davidgo

3
@hobbs, я ніколи не писав, що більшість провайдерів це роблять; Я написав, що це робить більшість житлових провайдерів . Наприклад, AT&T, Comcast, TWC, Verizon та ін. Роблять це для своїх клієнтів, які живуть, але вони не роблять цього для своїх ділових клієнтів.
Рон Моупін

6

Інші відповіді - чудові, і спам має багато спільного з цим.

Але насправді є простіша, загальніша відповідь: особливості. Надсилання електронної пошти через SMTP - це насправді дуже складна справа. Навіть без спаму, ви не хочете реалізувати весь набір функцій протоколу SMTP у кожному клієнті електронної пошти; вам краще за допомогою спеціалізованого програмного забезпечення (sendmail, postfix тощо) - великі в світі * nix, Exchange в світі Windows).

Наприклад, навіть на самому базовому, "справжній" SMTP-сервер повинен хоча б мати можливість вирішувати записи MX. Тоді він повинен узгодити функції (в основному TLS, але є й інші функції). Він має керувати чергами для повторних спроб, генерувати звіти про не доставку тощо.

І це лише основна, обов'язкова функціональність, без якої сервер навіть не працював. Він навіть не включає такі речі, як переписування адрес, розсилка повідомлень. Не кажучи вже про десяток або близько інших протоколів, які підтримують sendmail та ін., Наприклад UUCP.

Реалізація SMTP в Outlook, Thunderbird тощо дуже мінімальна - у кращому випадку приблизно еквівалент використання розумного хоста на sendmail, якщо це так.

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


Це хороший момент. Мова йде не лише про фактичні функції черги тощо, але наявність сервера впливає на деякі з цих функцій. Якщо виникла проблема, і ви вимкнете ноутбук, він не зможе повторити спробу до наступного ввімкнення - поштовий сервер, скоріш за все, буде доступний 24/7, хоча так він може значно краще керувати чергою повідомлень. Після того як ви надіслали повідомлення на сервер через SMTP, вашому поштовому клієнту не потрібно залишатися в Інтернеті, щоб забезпечити доставку.
Девід Спіллетт

4

Чому для надсилання пошти мені потрібен проміжний сервер SMTP? Чому мій клієнт (Outlook, Thunderbird) не може надсилати повідомлення безпосередньо SMTP-домену одержувача?

Ви можете створити електронну програму, яка це зробила, і я не сумніваюся, що інші це робили (або намагалися).

Ви, по суті, будете писати інструмент, який одночасно є MUA (агент користувача пошти) та MTA (агент передачі пошти) в одному.

Причиною того, що це традиційно розділяється на різні інструменти, а MTA залишається "на стороні сервера", полягає в тому, що MTA, який надсилає пошту через відкритий Інтернет, значно складніший для запису та налаштування, а також в тому, що він виграє від проживання в надійний "завжди на" сервері.

MTA повинен:

  • Знайдіть і підключіться до серверів, яким він не довіряє, або які можуть неправильно поводитися, і керуйте умовами помилок розумним способом, який не втрачає пошту.

  • Порадьтеся із серверами, які не працюють, та перейдіть на альтернативні сервери або в черзі на пошту для подальшого повторного спроби. Це найкраще працює на сервері, який "завжди підключений" до Інтернету. Це також означає, що агенту передачі пошти потрібні власні області зберігання для пошти, яка знаходиться в черзі.

  • Попрацюйте з різноманітними можливостями сервера, регулюючи поведінку відповідно до можливостей приймаючого сервера.

  • Повідомте користувачеві про умови помилок або коли пошта недоставлена, щоб пошта не просто була втрачена.

  • Майте відмінну практику безпеки та будьте дуже безпечні.

  • В ідеалі перебувайте на надійному, завжди підключеному сервері зі стабільною IP-адресою та зворотним записом DNS, тобто підключення до Інтернету, що підходить для публічних серверів. Це допомагає іншим системам не виявляти пошту, надіслану як спам.

Враховуючи ці вимоги, має сенс розмістити SMTP-сервер на загальнодоступному сервері, який постійно працює на будь-якому місці, і спробувати використовувати інструмент, який підходить для виконання цієї конкретної роботи.


1

Ще одна річ, яку слід врахувати - це отримання повернутого електронного листа . Як мінімум, у всіх вихідних електронних листах є адреса FROM, куди можна надіслати відповідь (невідомий користувач, відповідь у відпустці тощо). Щоб вирішити зворотну адресу, має існувати запис MX, який вказує на місце повернення вхідних. Якщо ви не надсилаєте електронний лист із комп'ютера зі статичною IP-адресою, яка завжди увімкнена, вам знадобиться сервер для обробки цих вхідних повідомлень. Зазвичай цим (але не завжди) займається одна і та ж служба.

GMail, Outlook 365 та Yahoo Mail - приклади служб електронної пошти, які використовуються особами, які надсилають електронну пошту. Для комерційної розсилки електронною поштою є такі сервіси, як MailChimp, Marketo та Eloqua, які дуже добре розсилають масовий електронний лист для компанії та обробляють такі речі, як відскоки, дроселювання та доставлення.

Дивіться: https://en.m.wikipedia.org/wiki/Bounce_address


Я не розумію, для чого мені потрібен статичний IP-адресу, щоб отримати відповідь ... Відповідь слід надсилати на мій сервер MX (наприклад, Gmail), а не на мій комп'ютер. Маю рацію?
Тобія

Так, ви праві. Думаю, моя думка полягає в тому, що папка "Вхідні" зазвичай існує десь на сервері, щоб надсилати вихідну пошту. За логікою, для цього сервера є сенс і для обробки вихідної електронної пошти. В іншому випадку ви втратите такі речі, як, наприклад, "надіслана" папка електронної пошти.
дата

Mmh це розумно. Але я вільний надіслати повідомлення з Gmail із невідомою адресою "від" чи "відповідь", відстежуючи його сервер smtp ...
Tobia

1
Якщо ви використовуєте GMail, вам доведеться використовувати автентифікацію smtp. Отже, FROM-адреса встановлена ​​на вашу адресу @ gmail.com. Інакше ви зможете скористатися їхньою послугою для підробки.
дата

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