Как отправить электронную почту с сервера Ubuntu?


13

Что я должен делать, это отправлять электронные письма из Ubuntu. Самый простой способ, который я нашел, - это использовать Thunderbird и связать мой реальный адрес электронной почты (abc@hotmail.com) с учетной записью Thunderbird. Я могу успешно получать электронные письма и загружать полную историю таким образом. Однако я не могу отправлять электронные письма.

Что я хочу сделать, так это отправлять электронные письма прямо из Ubuntu и отображаться как user1 @ localhost или что-то подобное.

Это вообще возможно? После прочтения различных тем об этом, кажется, что использование адреса реле является единственным способом.

Я также установил Postfix, так же, как там написано: Как настроить почтовый сервер? Когда меня попросили выбрать тип установки, я выбрал Интернет-сайт.

Варианты у меня были:

  • Нет конфигурации;
  • Интернет сайт;
  • Интернет со смартхостом;
  • Стеллитовая система;
  • Только местный;

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

Я использую Ubuntu 11.10 в качестве виртуальной машины.

Я надеюсь, что этот вопрос имеет смысл.

Ответы:


13

Это не имеет смысла, потому что вы сказали «должен делать», как будто это ваша работа. Вы настраиваете реальный почтовый сервер на виртуальной машине? Я предполагаю, что виртуальный сервер должен иметь почтовую систему, но виртуальный сервер не является полноценным «настоящим» SMTP-сервером. (В противном случае вы уже знаете, я думаю, дико.)

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

Если вы хотите использовать Postfix для этого, это легко сделать: просто найдите статьи об Ubuntu, относящиеся к настройке Postfix в качестве smarthost. Тем не менее, если у вас нет конкретного сродством к одной системы над другой, есть пакет , предназначенный только для этого: ssmtp. Итак, если вы хотите, чтобы это получилось, просто установите ssmtp.

( Внимание: действие ниже удалит postfix или 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 в качестве почтового сервера в своих приложениях с графическим интерфейсом для исходящего 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: Cannot open: 25», когда я пытаюсь отправить электронное письмо. ssmtp говорит: «ssmtp: не может открыться: 25». Я также сказал, что могу отправлять электронные письма через Thunderbird, но я думаю, что был неправ. Прости за это. Я получаю тайм-аут при отправке, пытаясь отправить электронную почту через Thunderbird, и сообщения о порте 25 при использовании почтовых клиентов CLI.
afaf12

@ afaf12 проверьте, не блокирует ли брандмауэр. Ошибка тайм-аута соединения в основном возникает из-за проблемы с межсетевым экраном.
Могил

1
Ограничивает ли удаленный почтовый сервер доступ к определенным диапазонам адресов с помощью конфигурации или брандмауэра?

Вам нужно использовать на этом удаленном почтовом сервере порт отправки: 465?

Я не могу sudo /etc/init.d/ssmtp restartработать на моей машине.
Нам G VU

1

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

Проверьте доступ к серверу с помощью команды telnet mail.example.com 25. Если он работает, вы получите баннерное сообщение с сервера.

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

РЕДАКТИРОВАТЬ: убедитесь, что у вас не активированы iptables и блокирует исходящий трафик. Если вы это сделаете, включите исходящий трафик на нужный порт. Вы можете использовать команду, например, tcptraceroute mail.example.com 25чтобы увидеть, где вы заблокированы. tcptracerouteнужно будет установить, прежде чем использовать его.


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

0

Я проверил это на бродячей коробке и работает отлично. Установил следующие вещи, запустив команду

apt-get установить php-pear

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

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

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

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

Затем установите postfix, выполнив следующую команду

apt-get установить postfix

во время установки выберите--

Интернет-сайт и localhost вместо сервера, потому что мы пытаемся это сделать на localhost

После этого выполните следующую команду

sudo vim /etc/ssmtp/ssmtp.conf

внести изменения в файлы

сделайте это измененным в файл ssmtp.conf

FromLineOverride = ДА

AuthUser=youremail@gmail.com

AuthPass = yourpasss

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

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

и затем вы можете использовать функцию php mail или ввести следующую команду в терминале, чтобы отправлять почту с самого терминала

$ ssmtp youremail@gmail.com

От: youremail@gmail.com

TO: sendto@email.com

Тема: Тема

Здравствуйте, это мой первый ssmtp адрес электронной почты!

нажмите Ctrl + D и ssmtp отправит вашу электронную почту

Вы также можете проверить SMTP работает или нет с вашей машины

ping smtp.gmail.com

--output из этой команды что-то вроде

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

telnet smtp.gmail.com 587

- output должен быть примерно таким

Попытка 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.