web-dev-qa-db-ja.com

外部のSMTPサーバーを使用するようにシステムメールを設定できますか?

Linuxボックスでシステムメールを設定して別のSMTPサーバー経由で送信することは可能ですか?もしそうなら、どうすればいいですか?

それが不明確な場合は、例を挙げてみましょう。コマンドラインで次のように入力した場合:

cat body.txt | mail -s "just a test" [email protected]

gメールのような外部のSMTPサーバーを介してそれを送信することは可能ですか?

「コマンドラインからGmailからメールを送信する方法」ではなく、特定のSMTPサーバーを使用するようにシステム全体を構成するオプション、またはSMTPサーバー上の1つのアカウント(fromアドレスを上書きする可能性があります)を探しています。

78
cwd

SSMTPの使い方は非常に簡単だと思いました。

Debianベースのシステム:

apt-get install ssmtp

次に、/ etc/ssmtp/ssmtp.conf内の構成ファイルを編集します

Gmailを使用してメールを送信するための設定例:

# root is the person who gets all mail for userids < 1000
[email protected]

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

:「mail」コマンドがシステムに存在することを確認してください。 mailutilsパッケージは、Debianベースのシステムでこれを提供するはずです。

アップデート:sSMTPが「スペース」または「#」文字を含むパスワードを受け付けないという報告(およびさまざまなLinuxディストリビューションのバグレポート)があります。 sSMTPが機能しない場合は、これが原因である可能性があります。

72

postfixの場合:

  • 外部メールリレーのIPを/etc/hostsに追加し、エイリアスメールリレーを追加します。
  • Postfix構成を変更します。

    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

Rootだけがこれを読むことができると言う必要はありません... chmod u=r,og=-

24
Nils

mailxは、CLIでのSMTPサーバーの設定をサポートしています...

echo "message" | mailx -S smtp=$smtphost:$smtpport -s "subject line" -v [email protected]

SMTPサーバーで非認証メールを送信できる場合は、何もインストールする必要はありません。

Linuxボックスにあるかもしれないソフトウェアのビットallに対してsmtpサーバーを設定する答えはありません。各電子メールクライアントはSMTPサーバーを構成できます。

13
teknopaul

私のお気に入りは emailgithub )クライアントです。それは本当にシンプルで、複雑な設定や依存関係は必要ありません。また、コマンドラインでsmtp-server引数を指定することもできます。つまり、スクリプトに適しています。唯一の残念なことに、ほとんどのLinuxディストリビューションにはこのツールが含まれていないため、自分でコンパイルする必要があります。

github上のメールプロジェクト からの引用

Q:「メール」とは何ですか?

A:「email」は、コマンドライン経由でリモートのSMTPサーバーにメールを送信するか、内部で「sendmail」を使用して、電子メールを暗号化して署名するためにGNUPGと完全に対話するように設計したプログラムです。 ..次の場所でGNUPGを入手できます http://www.gnupg.org

ありがとう cygwin この便利な email クライアントを知らせてくれてありがとう。

コンパイルしてインストール

./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 [email protected] -smtp-server smtp.domain.com -smtp-port 25 [email protected] [email protected]

HTMLメール

echo "<h1>header</h1><p>paragraph</p>" | email -html -subject "unix.stackexchange.com Q36982 HTML mail" [email protected]

添付ファイル

echo "see the attachment(s)" | email -subject "This is my email.conf file" -attach /etc/email/email.conf -attach [email protected]
7
LiuYan 刘研

this ページの指示に従ってローカルexim SMTPサーバーをセットアップしますが、Eximの first 画面から[smarthostによって送信されたメール、ローカルメールなし]オプションを選択します。構成。これにより、「mail」または「mailx」コマンドからメールを受信できるボックスにSMTPサーバーが設定され、すべてのメッセージがスマートホスト(この場合はGmailサーバー)に転送されて配信されます。

Gmailサーバー経由で送信メールを送信するには、 EximのTLSサポート を設定する必要があります。これは簡単ではありません。この Howto はいくつかの説明を提供し、- here's はGmailに固有の詳細な説明のリンクです。これが機能するまでには数時間かかります。ルートアクセスが可能なTLS対応のSMTPサーバーにボックスからメールを送信して、Gmailサーバー経由で送信する前に両側からExim TLS構成をデバッグできるようにすることをお勧めします。通信は暗号化されているため、tcpdumpなどのツールを使用して回線上のプロトコルを分析することはできません。

2
Eli Rosencruft

ホストとの外部SMTPサーバー接続がある場合は、ホストでSMTPを構成して電子メールを送信できます。

LinuxのステップでのSMTP設定はここにあります: http://kerneltalks.com/config/guide-smtp-configuration-linux/

メールコマンドの例はここにあります: http://kerneltalks.com/commands/examples-send-email-through-terminal/

1
Shrikant

Postfix構成

要件:これらの4つのパッケージが必要ですpostfix mailx cyrus-sasl-plugin ca-certificatesそれ以外の場合mailutils libsasl2-modules ca-certificatesまた、Gmailを使用している場合、 2段階認証 および アプリケーションパスワード が適切に機能するために必要/推奨されます。

Google gmailとtls暗号化の例、edit/append以下に記載されているファイル

ステップ1:

/etc/postfix/sasl_passwd

[smtp.gmail.com]:587 [email protected]: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
intika