Linuxボックスでシステムメールを設定して別のSMTPサーバー経由で送信することは可能ですか?もしそうなら、どうすればいいですか?
それが不明確な場合は、例を挙げてみましょう。コマンドラインで次のように入力した場合:
cat body.txt | mail -s "just a test" [email protected]
gメールのような外部のSMTPサーバーを介してそれを送信することは可能ですか?
「コマンドラインからGmailからメールを送信する方法」ではなく、特定のSMTPサーバーを使用するようにシステム全体を構成するオプション、またはSMTPサーバー上の1つのアカウント(fromアドレスを上書きする可能性があります)を探しています。
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が機能しない場合は、これが原因である可能性があります。
postfixの場合:
/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=-
mailxは、CLIでのSMTPサーバーの設定をサポートしています...
echo "message" | mailx -S smtp=$smtphost:$smtpport -s "subject line" -v [email protected]
SMTPサーバーで非認証メールを送信できる場合は、何もインストールする必要はありません。
Linuxボックスにあるかもしれないソフトウェアのビットallに対してsmtpサーバーを設定する答えはありません。各電子メールクライアントはSMTPサーバーを構成できます。
私のお気に入りは email ( github )クライアントです。それは本当にシンプルで、複雑な設定や依存関係は必要ありません。また、コマンドラインで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
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]
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]
this ページの指示に従ってローカルexim SMTPサーバーをセットアップしますが、Eximの first 画面から[smarthostによって送信されたメール、ローカルメールなし]オプションを選択します。構成。これにより、「mail」または「mailx」コマンドからメールを受信できるボックスにSMTPサーバーが設定され、すべてのメッセージがスマートホスト(この場合はGmailサーバー)に転送されて配信されます。
Gmailサーバー経由で送信メールを送信するには、 EximのTLSサポート を設定する必要があります。これは簡単ではありません。この Howto はいくつかの説明を提供し、- here's はGmailに固有の詳細な説明のリンクです。これが機能するまでには数時間かかります。ルートアクセスが可能なTLS対応のSMTPサーバーにボックスからメールを送信して、Gmailサーバー経由で送信する前に両側からExim TLS構成をデバッグできるようにすることをお勧めします。通信は暗号化されているため、tcpdumpなどのツールを使用して回線上のプロトコルを分析することはできません。
ホストとの外部SMTPサーバー接続がある場合は、ホストでSMTPを構成して電子メールを送信できます。
LinuxのステップでのSMTP設定はここにあります: http://kerneltalks.com/config/guide-smtp-configuration-linux/
メールコマンドの例はここにあります: http://kerneltalks.com/commands/examples-send-email-through-terminal/
要件:これらの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
出典:セットアップの詳細については、これをチェックしてください 記事 ですが、設定が異なることに注意してください