Я могу настроить системную почту для использования внешнего сервера SMTP?

Я не думаю, что существует способ сказать, какие пользователи были "вручную созданы". Вероятно, лучшее, которое можно сделать, ищут пользователей, которые имеют допустимую оболочку, как у обычно пользователей системы как sshd и gdm есть оболочки как /bin/false и /sbin/nologin предотвратить логины. Список допустимых оболочек находится в /etc/shells, таким образом, можно использовать grep получить список пользователей с одной из тех оболочек:

$ grep -f /etc/shells /etc/passwd

Если Вы просто хотите имена пользователей:

$ grep -f /etc/shells /etc/passwd | cut -d: -f1
75
21.04.2012, 00:46
7 ответов

Я нашел sSMTP очень простой использовать.

В Debian основывал системы:

apt-get install ssmtp

Затем отредактируйте конфигурационный файл в/etc/ssmtp/ssmtp.conf

Демонстрационная конфигурация для использования Gmail для отправки электронных писем:

# root is the person who gets all mail for userids < 1000
root=your@email.com

# Here is the gmail configuration (or change it to your private smtp server)
mailhub=smtp.gmail.com:587
AuthUser=your@gmail.com
AuthPass=yourGmailPass
UseTLS=YES
UseSTARTTLS=YES

Примечание: Удостоверьтесь, что "почтовая" команда присутствует в Вашей системе. пакет mailutils должен обеспечить, этот в Debian основывал системы.

Обновление: существуют люди (и отчеты об ошибках для различных дистрибутивов Linux) сообщающий, что sSMTP не примет пароли с 'пространством' или '#' символ. Если sSMTP не работает на Вас, это может иметь место.

72
27.01.2020, 19:31
  • 1
    как примечание другим, Вам, вероятно, придется установить ssmtp, и затем mailutils. я думаю, что mailutils настраивает почтовую команду и символьные ссылки на ssmtp, таким образом, можно использовать постоянного клиента mail синтаксис :) –  cwd 23.08.2012, 17:24
  • 2
    @cwd Просто протестирован на Ubuntu 13.04. Я не должен был устанавливать mailutils пакет (и это не установлено автоматически). ssmtp работавшее out-of-the поле. –  Pijusn 24.05.2013, 08:42
  • 3
    я просто успешно использовал это в Debian на Черном BeagleBone и действительно должен был установить mailutils сначала. –  Dave Nelson 30.03.2014, 01:40
  • 4
    На Kubuntu 14.04, должен был установить mailutils после ssmtp. Однако это работало при первой попытке. –  MariusMatutiae 22.05.2014, 06:58
  • 5
    ssmtp НЕ проверяет сертификат SSL/TLS об удаленном сервере на текущем debian, человечности и выпусках Redhat и также НЕ проверяет имя хоста сертификата. Это - главная проблема, поскольку это эффективно представляет бесполезное шифрование, и Ваш пароль передается одинаково к тому, чтобы быть простым текстом, и любой может осуществить сниффинг его. ssmtp не имел никакой активной разработки с тех пор по крайней мере 2009. Так, если Вы заботитесь о безопасности почтового ящика, Вы используете для своей исходящей почты серверов, НЕ используйте ssmtp, но постфикс (или что-то еще) вместо этого: unix.stackexchange.com/a/118101/72087 –  Zulakis 24.02.2016, 12:44

Для постфикса:

  • Добавьте IP для своего внешнего почтового реле к /etc/hosts и добавьте псевдоним mailrelay к нему.
  • Измените постфиксную конфигурацию:

    relayhost = [mailrelay]
    smtp_sasl_auth_enable = yes
    smtp_sasl_password_maps = hash:/etc/postfix/smtp_auth
    smtp_sasl_security_options = noanonymous
    
  • Править /etc/postfix/smtp_auth

    mailrelay login:password
    
  • Преобразуйте в формат хеша

postmap /etc/postfix/smtp_auth

Никакая потребность сказать, что только корень должен смочь считать это... chmod u=r,og=-

24
27.01.2020, 19:31

Настройте локальный exim сервер SMTP путем следования инструкциям на этой странице, но выберите опцию "mail sent by smarthost; no local mail" из первого экрана конфигурации Exim. Это настроит сервер SMTP на Вашем поле, которое может получить почту от команд "почты" или "mailx" и передаст все сообщения к smarthost (сервер Gmail в Вашем случае) для доставки.

Для отправки исходящего электронного письма через сервер Gmail, необходимо будет настроить поддержку TLS Exim, который не тривиален. Это практическое руководство дает некоторое объяснение и здесь является ссылкой с дальнейшим объяснением, характерным для Gmail. Необходимо позволить себе несколько часов для получения этой работы. Я предложил бы запуститься путем отправки электронного письма с поля на включенный сервер SMTP TLS, к которому у Вас есть корневой доступ так, чтобы можно было отладить конфигурацию TLS Exim с обеих сторон прежде, чем попытаться отправить хотя сервер Gmail. Так как коммуникация шифруется, Вы привычка смочь использовать инструменты как tcpdump для анализа протокола на строке.

2
27.01.2020, 19:31

Моим фаворитом является электронная почта (GitHub) клиент. Это действительно просто, никакая сложная необходимая конфигурация, никакие необходимые зависимости. И можно указать аргумент smtp-сервера через командную строку, что означает, что это более подходит для сценариев. Единственная жалость состоит в том, что большинство дистрибутивов Linux не делает содержит этот инструмент, таким образом, необходимо скомпилировать его сами.

Кавычки от почтового проекта на GitHub

Q: Что такое 'электронная почта'?

A: 'электронное письмо' является программой, которую я разработал, который будет посылать электронное письмо через командную строку к удаленным smtp серверам или использовать 'sendmail' внутренне и полностью взаимодействовать с GNUPG, чтобы зашифровать и подписать Ваши электронные письма, таким образом, Вы решите сделать так... Можно получить GNUPG в: http://www.gnupg.org

Благодарите cygwin позволенный меня известный этот полезный почтовый клиент.

Скомпилируйте и установите

./configure
make
./install.sh --version 3.1.3 --prefix /usr --mandir /usr/share/man --sysconfdir /etc

Параметры командной строки электронной почты

$ email --help
Options information is as follows
email [options] recipient1,recipient2,...

    -h, -help module          Print this message or specify one of the below options
    -V, -verbose              Display mailing progress.
    -f, -from-addr            Senders mail address
    -n, -from-name            Senders name
    -b, -blank-mail           Allows you to send a blank email
    -e, -encrypt              Encrypt the e-mail for first recipient before sending
    -s, -subject subject      Subject of message
    -r, -smtp-server server   Specify a temporary SMTP server for sending
    -p, -smtp-port port       Specify the SMTP port to connect to
    -a, -attach file          Attach file and base64 encode
    -c, -conf-file file       Path to non-default configuration file
    -t, -check-config         Simply parse the email.conf file for errors
    -x, -timeout              Set socket timeout.
        -cc email,email,...   Copy recipients
        -bcc email,email,...  Blind Copy recipients
        -sign                 Sign the email with GPG
        -html                 Send message in HTML format ( Make your own HTML! )
        -tls                  Use TLS/SSL
    -m, -smtp-auth type       Set the SMTP AUTH type (plain or login)
    -u, -smtp-user username   Specify your username for SMTP AUTH
    -i, -smtp-pass password   Specify your password for SMTP AUTH
    -g, -gpg-pass             Specify your password for GPG
    -H, -header string        Add header (can be used multiple times)
        -high-priority        Send the email with high priority
        -no-encoding          Don't use UTF-8 encoding

Демонстрационное использование

Простая почта с указанным сервером SMTP

echo "mail body" | email -subject "unix.stackexchange.com Q36982" -from-name LiuYan刘研 -from-addr liuyan@domain.com -smtp-server smtp.domain.com -smtp-port 25 cwd@your-domain.com your-friends@his-domain.com

Почта HTML

echo "<h1>header</h1><p>paragraph</p>" | email -html -subject "unix.stackexchange.com Q36982 HTML mail" cwd@your-domain.com

Вложение (вложения)

echo "see the attachment(s)" | email -subject "This is my email.conf file" -attach /etc/email/email.conf -attach cwd@your-domain.com
7
27.01.2020, 19:31

mailx поддерживает настройку smtp-сервера на CLI....

echo "message" | mailx -S smtp=$smtphost:$smtpport -s "subject line" -v foo@baa.com

Ничего не нужно устанавливать, при условии, что ваш smtp-сервер позволяет вам отправлять почту без аутентификации.

Нет ни одного ответа, который бы установил smtp-сервер на все биты программного обеспечения, которые могут быть установлены на вашем Linux-боксе. Каждый почтовый клиент может настроить SMTP-сервер.

12
27.01.2020, 19:31

Если у вас есть соединение с внешним сервером smtp с вашим хостом, вы можете настроить smtp на своем хосте и отправлять электронные письма.

Конфигурацию Smtp в шагах Linux можно найти здесь: http://kerneltalks.com/config/guide-smtp-configuration-linux/

Примеры почтовых команд можно найти здесь: http: //kerneltalks.com/commands/examples-send-email-through-terminal/

1
27.01.2020, 19:31

Конфигурация постфикса

Требование:эти 4 пакета необходимыpostfix mailx cyrus-sasl-plugin ca-certificatesдля CentOS в противном случаеmailutils libsasl2-modules ca-certificates. Кроме того, если вы используете gmail, 2 -шага аутентификации и пароль приложения необходимы/предпочтительны для правильной работы.

Пример с шифрованием google gmail и tls, отредактируйте/добавьте перечисленные файлы, как описано ниже

Шаг 1:

/etc/postfix/sasl_passwd

[smtp.gmail.com]:587 sender@gmail.com:apppassword

Шаг 2:

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

postmap /etc/postfix/sasl_passwd
chown root. /etc/postfix/sasl_passwd
chmod 600 /etc/postfix/sasl_passwd
chown root. /etc/postfix/sasl_passwd.db
chmod 600 /etc/postfix/sasl_passwd.db

Шаг 3:

/etc/aliases(список пользователей, которые могут пользоваться сервисом, при необходимости обновите его)

postmaster: root
nobody: root
hostmaster: root
webmaster: root
www: root

Шаг 4:

запустить newaliases, чтобы применить предыдущие изменения

Шаг 5:

/etc/postfix/virtual

root email@you_want_it_to_receive_sent_mail.com

Шаг 6:

примените предыдущие изменения, запустив

postmap /etc/postfix/virtual

Шаг 7:

/etc/postfix/main.cfдобавьте/отредактируйте его и убедитесь, что нет дубликатов, также установите правильное значение для smtp_tls_CAfileв зависимости от того, где находится ваш файл (это предоставляется пакетом ca-certificates)

inet_protocols = ipv4
relayhost = [smtp.gmail.com]:587
smtp_use_tls = yes
tls_append_default_CA = no
smtp_sasl_auth_enable = yes
smtp_tls_security_level = encrypt
smtp_tls_CAfile = /etc/ssl/ca-bundle.pem
#smtp_tls_CAfile = /etc/ssl/certs/ca-bundle.crt
smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd
mydestination =
relay_clientcerts = 
smtp_sasl_security_options =
tls_random_source = dev:/dev/urandom
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
virtual_alias_maps = hash:/etc/postfix/virtual

Шаг 8:

перезапустить службу

systemctl restart postfix

Шаг 9:

проверить систему

echo "This is a test Email" | mail -s "Testing" root

Шаг 10:

проверить журналы

less /var/log/mail.log

Источники:для получения более подробной информации о настройке см. статью , но обратите внимание, что настройка отличается

0
27.01.2020, 19:31

Теги

Похожие вопросы