Як надіслати електронну пошту з сервера Ubuntu?


13

Що я повинен зробити, це надсилати електронні листи від Ubuntu. Найпростіший спосіб, який я знайшов, - це використовувати Thunderbird та пов’язати мою реальну адресу електронної пошти (abc@hotmail.com) з обліковим записом Thunderbird. Я можу успішно отримувати електронні листи та завантажувати повну історію таким чином. Однак я не можу надсилати електронні листи.

Що я хочу зробити, це надсилати електронні листи прямо з Ubuntu і з'являтися як user1 @ localhost або щось подібне.

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

Я також встановив Postfix так само, як написано там: Як налаштувати поштовий сервер? Коли мене попросили вибрати тип установки, я вибрав Інтернет-сайт.

У мене були варіанти:

  • Немає конфігурації;
  • Інтернет-сайт;
  • Інтернет зі смартхостом;
  • Стелітна система;
  • Лише місцеві;

Коли я запитав ім'я системної пошти, я ввійшов у власний веб-сайт: some_website.com. Я досі не розгадав, як надсилати повідомлення електронною поштою postfix, але я припускаю, що знову буде використаний ретрансляційний сервер.

Я запускаю Ubuntu 11.10 як віртуальну машину.

Сподіваюся, це питання має сенс.

Відповіді:


13

Це не має сенсу, оскільки ви сказали, "це потрібно робити", як ніби це ваша робота. Ви встановлюєте справжній поштовий сервер у віртуальній машині? Я вважаю, що підказки означають, що віртуальному серверу вам потрібна поштова система, але віртуальний сервер не є "справжнім" SMTP-сервером штатного робочого дня. (Інакше ви б уже знали, мабуть, дико.)

Зважаючи на це, вам знадобиться опція "Інтернет зі смартхостом". По суті, велика причина полягає в тому, що добре налаштовані SMTP-сервери у всьому світі використовують анти-спам-заходи; і серед цих заходів є відмова від усіх SMTP-з'єднань, що надходять із відомих пулів динамічних адрес (якими спаммери люблять користуватися). Тому вам потрібно використовувати інший SMTP-сервер для вихідної пошти.

Якщо ви хочете дотримуватися Postfix для цього, це зробити досить просто: просто шукайте статті Ubuntu, пов’язані з налаштуванням Postfix як smarthost. Тим НЕ менше, якщо у вас немає конкретного спорідненістю до однієї системи над іншою, є пакет , призначений тільки для цього: ssmtp. Отже, якщо ви хочете дати йому крутити, то просто встановіть ssmtp.

( Обережно: дія, наведена нижче, видалить поштовий поштовий індекс або sendmail. )

sudo apt-get install ssmtp

Потім відредагуйте файл конфігурації ssmtp:

sudo -e /etc/ssmtp/ssmtp.conf

Я не знаю деталей доступного для вас SMTP-сервера, тому наведу приклад GMail:

Root=your_email@gmail.com
Mailhub=smtp.gmail.com:465
RewriteDomain=gmail.com
AuthUser=your_gmail_username # me@gmail.com
AuthPass=your_gmail_password
FromLineOverride=Yes
UseTLS=Yes

Тепер ваша система надсилатиме пошту так, як вам захочеться. Ви можете використовувати localhost як поштовий сервер у своїх GUI-програмах для вихідного SMTP-сервера. А як щодо CLI? Використовуйте mailпрограмне забезпечення:

sudo apt-get install heirloom-mailx

Тепер ви також можете використовувати пошту з командного рядка з чимось на зразок:

mail < filename.ascii someone@somewhere.com -s "My File"

Або, якщо ви використовуєте mailдля створення повідомлення, яке ви вводите ( mail someone@somewhere.com), то закінчіть поштове повідомлення одним періодом на порожньому рядку. Кращим поштовим клієнтом CLI є muttабо pine.

Це потрібний вам кут? Якщо так, то чи вдалося це зробити?


1
Mutt каже: "sendmail: Не вдається відкрити: 25", коли я намагаюся надіслати електронний лист. ssmtp каже "ssmtp: не можна відкрити: 25" Я також сказав, що можу надсилати електронні листи через Thunderbird, але, думаю, я помилявся. Вибач за це. Я вимкнувся з тимчасовим вимиканням, коли намагаюся надсилати електронні листи через Thunderbird та повідомлення про порт 25 під час використання поштових клієнтів CLI.
afaf12

@ afaf12 перевірити, чи блокується брандмауер. Помилка очікування підключення в основному виникає через проблему брандмауера.
Мугіль

1
Чи обмежує віддалений поштовий сервер доступ до певних діапазонів адрес за конфігурацією чи брандмауером?

Чи потрібно використовувати на цьому віддаленому поштовому сервері порт подання: 465?

Я не можу працювати sudo /etc/init.d/ssmtp restartна своїй машині.
Нам Г ВУ

1

Якщо ви використовуєте Thunderbird, ви можете налаштувати віддалений сервер для SMTP. Якщо у вас немає власного поштового сервера, зазвичай це буде ретрансляційний сервер вашого провайдера або SMTP-сервер ваших постачальників пошти. Я успішно використовував Gmail як мій сервер SMTP, але для цього потрібна автентифікація. (Деякі з інших хостів можуть також.)

Тестуйте доступ до сервера за допомогою команди telnet mail.example.com 25. Якщо він працює, ви отримаєте банерне повідомлення від сервера.

Після того, як Thunderbird працює з сервером, ви можете налаштувати Exim або Postfix як супутниковий сервер для того ж сервера. Ви можете пропустити це, якщо вам не потрібно надсилати електронну пошту з іншої програми. Будьте уважні, щоб адреса джерела на вихідному сервері може приймати електронну пошту.

EDIT: Перевірте, чи немає активованих iptables та блокують вихідний трафік. Якщо це зробити, увімкніть вихідний трафік на потрібний порт. Ви можете використовувати команду, як, tcptraceroute mail.example.com 25щоб побачити, де вас заблокують. tcptracerouteпотрібно буде його встановити, перш ніж використовувати його.


Telnet: Не вдається підключитися до віддаленого хоста: з'єднання вичерпано. Я впевнений, що віддалений сервер може приймати пошту на порт 25. Я успішно надсилаю електронні листи на цей віддалений сервер з іншої машини (Windows 7).
afaf12

0

Я перевірив це на бродячому ящику і працював чудово. Встановлюючи наступні речі за допомогою команди

apt-get встановити php-груша

груша встановити пошту

груша встановити Net_SMTP

груша встановити Auth_SASL

груша встановити mail_mime

Потім встановіть постфікс, виконавши наступну команду

apt-get встановити постфікс

під час встановлення Виберіть--

Інтернет-сайт і localhost замість сервера, тому що ми намагаємося це на localhost

Після цього запустіть наступну команду

sudo vim /etc/ssmtp/ssmtp.conf

вносити зміни до файлів

зробити це змінено у файл ssmtp.conf

FromLineOverride = ТАК

AuthUser=youremail@gmail.com

AuthPass = ваш пропуск

Найголовніше зробити вашу електронну пошту доступною для менш захищених додатків

https://www.google.com/settings/security/lesssecureapps

а потім ви можете використовувати функцію пошти php або ввести наступну команду в терміналі для надсилання пошти з самого терміналу

$ ssmtp youremail@gmail.com

Від: youremail@gmail.com

ДО: sendto@email.com

Тема: Тема

Привіт, це моя перша електронна пошта ssmtp !.

натисніть Ctrl + D, і ssmtp надішле ваш електронний лист

Ви також можете перевірити, чи працює smtp зі своєї машини

ping smtp.gmail.com

- вихід з цієї команди є чимось на кшталт

64 байти з sc-in-f108.1e100.net (74.125.68.108): icmp_seq = 1 ttl = 63 час = 68,4 мс

telnet smtp.gmail.com 587

- вихід повинен бути чимось таким

Пробуємо 74.125.68.108 ...

Підключено до gmail-smtp-msa.l.google.com.

220 smtp.gmail.com ESMTP l14sm12513264pfb.73 - gsmtp

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