SSMTP
SSMTP はローカルコンピュータから設定したメールホスト (メールハブ) にメールを配達するプログラムです。(sendmail などのような機能豊富なメールサーバーと違って) メールサーバーではないのでメールを受信したり、エイリアスを展開したりキューを管理することはできません。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
ローカルのユーザー名のエイリアスを作成 (任意):
/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
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
添付ファイル
添付ファイルを追加する場合、Mutt と Msmtp をインストール・設定して nixcraft を見て下さい。
または、uuencode を使って添付することも可能です:
$ uuencode file.txt file.txt | mail user@domain.com