Linux

簡単にUbuntuでSMTPでメールを送信するにはMSMTPが良さそう。

メールで簡単に送信する方法を紹介します。特に、Ubuntuでのメール送信については紹介されていないの確認していきたいと思います。

Linux + メール + SMTP などで検索すると大体はmailxが見つかると思います。

Ubuntuの場合はmailxをインストールするためには以下のパッケージをインストールする必要があります。

  • mailutils
# mailx --version
mailx (GNU Mailutils) 3.14
Copyright (C) 2007-2022 Free Software Foundation, inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
  • bsd-mailx

ヘルプなどはありません

# mailx -?
mailx: invalid option -- '?'
usage: mailx [-dEIinv] [-a header] [-b bcc-addr] [-c cc-addr] [-r from-addr] [-s subject] [--] to-addr ...
mailx [-dEIiNnv] -f [name]
mailx [-dEIiNnv] [-u user]

この二つとはコマンドとして同じでも異なるソフトウェアです。

基本的にどちらもPostfixのインストールが必要です。また、派生系のs-nailなどもPostfixがインストールされます。

そこでPostfixが必要のないもとして、MSMTPを紹介していきます。

インストールは以下のように行います。

apt install msmtp msmtp-mta

設定ファイルをコピーします。

cp /usr/share/doc/msmtp/examples/msmtprc-system.example /etc/msmtprc
chmod 600 /etc/msmtprc
# Example for a system wide configuration file

ホストを変更して送信してみましょう。

# A system wide configuration file is optional.
# If it exists, it usually defines a default account.
# This allows msmtp to be used like /usr/sbin/sendmail.
account default

# The SMTP smarthost
host mail.oursite.example

# Use TLS on port 465
port 465
tls on
tls_starttls off

# Construct envelope-from addresses of the form "user@oursite.example"
from %U@oursite.example

# Syslog logging with facility LOG_MAIL instead of the default LOG_USER
syslog LOG_MAIL

送信

echo "Subject: Testing msmtp" | /usr/sbin/sendmail {メールアドレス}

以上で送信できます。

-Linux
-,