SSMTP

提供: ArchWiki
2015年7月6日 (月) 20:17時点におけるKusakata (トーク | 投稿記録)による版
ナビゲーションに移動 検索に移動

SSMTP はローカルコンピュータから設定したメールホスト (メールハブ) にメールを配達するプログラムです。(sendmail などのような機能豊富なメールサーバーと違って) メールサーバーではないのでメールを受信したり、エイリアスを展開したりキューを管理することはできません。SSMTP は主としてマシンから (システムアラートのような) 自動メールを外部のメールアドレスに飛ばすのに使われます。

インストール

ssmtp パッケージをインストールしてください。

Gmail メールサーバーに転送

SSMTP を使うには、設定ファイル (/etc/ssmtp/ssmtp.conf) を編集してアカウント設定を入力する必要があります:

# The user that gets all the mails (UID < 1000, usually the admin)
root=username@gmail.com

# The mail server (where the mail is sent to), both port 465 or 587 should be acceptable
# See also http://mail.google.com/support/bin/answer.py?answer=78799
mailhub=smtp.gmail.com:587

# The address where the mail appears to come from for user authentication.
rewriteDomain=gmail.com

# The full hostname
hostname=localhost

# Use SSL/TLS before starting negotiation
UseTLS=Yes
UseSTARTTLS=Yes

# Username/Password
AuthUser=username
AuthPass=password

# Email 'From header's can override the default domain?
FromLineOverride=yes
ノート: Take note, that the shown configuration is an example for Gmail, You may have to use other settings. If it is not working as expected read the man page man 8 ssmtp, please.

ローカルのユーザー名のエイリアスを作成 (任意):

/etc/ssmtp/revaliases
root:username@gmail.com:smtp.gmail.com:587
mainuser:username@gmail.com:smtp.gmail.com:587

Gmail サーバーに正しくメールを転送できているかテストするには:

$ echo test | mail -v -s "testing ssmtp setup" tousername@somedomain.com

'root' の代わりに 'root at myhost' からメールを受信するには /etc/passwd を編集して 'From' テキストを変更します:

# chfn -f 'root at myhost' root
# chfn -f 'mainuser at myhost' mainuser

これで /etc/passwd が以下のように変更されます:

$ grep myhostname /etc/passwd
root:x:0:0:root@myhostname,,,:/root:/bin/bash
mainuser:x:1000:1000:mainuser@myhostname,,,:/home/mainuser:/bin/bash

セキュリティ

Because your email password is stored as cleartext in /etc/ssmtp/ssmtp.conf, it is important to secure the file. Securing ssmtp.conf will ensure that:

  • if any users have unprivileged access to your system, they cannot read the file and see your email password, while still letting them send out email
  • if your user account is ever compromised, the hacker cannot read the ssmtp.conf file, and therefore your email password, unless he gains access to the root account as well

To secure ssmtp.conf, do this:

ssmtp グループを作成:

# groupadd ssmtp

ssmtp.conf のグループ所有者を新しく作った ssmtp グループに設定:

# chown :ssmtp /etc/ssmtp/ssmtp.conf

Set the group owner of the ssmtp binary to the new ssmtp group:

# chown :ssmtp /usr/bin/ssmtp

Make sure only root, and the ssmtp group can access ssmtp.conf:

# chmod 640 /etc/ssmtp/ssmtp.conf

Set the SGID bit on the ssmtp binary.

# chmod g+s /usr/bin/ssmtp

Now, all the regular users can still send email using the terminal, but none can read the ssmtp.conf file.

メールの送信

ターミナルからメールを送信するには、以下を実行:

$ echo "this is the body" | mail -s "Subject" username@somedomain.com

もしくは次を実行することでインタラクティブに送信できます:

$ mail username@somedomain.com
ノート: When using mail interactively, after typing the Subject and hitting enter, you type the body. Hit Ctrl+d on a blank line to end your message and automatically send it out.

An alternate method for sending emails is to create a text file and send it with ssmtp or mail

test-mail.txt
To:username@somedomain.com
From:youraccount@gmail.com
Subject: Test

This is a test mail.

test-mail.txt ファイルを送信:

$ mail username@somedomain.com < test-mail.txt

添付ファイル

添付ファイルを追加する場合、MuttMsmtp をインストール・設定して nixcraft を見て下さい。

または、uuencode を使って添付することも可能です:

$ uuencode file.txt file.txt | mail user@domain.com

参照