Featured image of post Mac OS X (Mountain Lion)で、Postfix(sendmail)の設定を行いコマンドからgmail/icloudアドレスでメールを送る

Mac OS X (Mountain Lion)で、Postfix(sendmail)の設定を行いコマンドからgmail/icloudアドレスでメールを送る

OS X Mountain Lion にてローカルの sendmail (postfix )を利用できるように設定をしたのでメモをしておきます。Postfixなんてなつかし〜と思いながら結構つまづいています。

Medium 19705415

まず、いくつか設定を行わないとそもそも動作しないので postfix の構成から行います。これらを正しくしていないといくつかエラーがが発生するので注意が必要です。上手く送信されていないなと思ったりした場合には /var/log/mail.log 等を参考に直していく事になります。

Step 1

まず始めに、Postfixの設定を修正します。これを実施しない場合には sendmail: fatal: chdir /Library/Server/Mail/Data/spool: No such file or directory というエラーが表示されます。

sudo mkdir -p /Library/Server/Mail/Data/spool sudo /usr/sbin/postfix set-permissions sudo /usr/sbin/postfix start

さらに警告が出てくると思われるので以下おコマンドを実行する。また構成のチェック等は postfix check を行う事で確認する事も出来るので覚えておきましょう。

sudo chmod g-w /Library/Server/Mail/Data/mta sudo postfix check sudo postfix reload

Step 2

次に、送信するメール(リレー)サーバの設定を行います。これにはgmailやme.com等を利用すると良いかと思います。MacOSX 常時のメールサーバにする場合にはまた別の設定になりますのでここでは取り扱いません。普通のメールクライアントの様な利用法を想定します。設定は全て /etc/postfix/main.cf に記載されます。

`

Gmail

relayhost = [smtp.gmail.com]:587 smtp_sasl_auth_enable = yes smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd smtp_sasl_security_options = noanonymous smtp_sasl_mechanism_filter = plain smtp_use_tls = yes tls_random_source=dev:/dev/urandom `

`

mail.me.com

relayhost = [smtp.mail.me.com]:587 smtp_sasl_auth_enable = yes smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd smtp_sasl_security_options = noanonymous smtp_sasl_mechanism_filter = plain smtp_use_tls = yes tls_random_source=dev:/dev/urandom ` ★ iCloud:メールサーバの情報

上記は gmail.com と me.com の例を掲載しています、実際にはどちらか一方の設定を記載するようにしておきます。変更した後には上記のStep1同様にcheck / reload をしておきましょう。

Step 3

上記の設定でメールのユーザ管理には sasl (Simple Authentication and Security Layer )を利用するという定義になっているのでこれに必要な処理を行います。これはユーザのパスワード等を記載した物になります。

vi /tmp/sasl_passwd

等のコマンドでファイルを作成します。内容は gmail / me.com に応じてサーバの箇所を変更して以下のように記載します。

` [smtp.gmail.com]:587 hogehoge@gmail.com:

`

上記のファイルにたいして暗号化を行い、定義された場所(/etc/postfix/)に移動します。元のファイルは不要ですので消すかパスワードの箇所を削除しておきましょう

postmap /tmp/sasl_passwd cp -p /tmp/sasl_passwd.db /etc/postfix/sasl_passwd.db postfix check psotfix reload

ファイル名等は間違いないようにしましょう。

Step 4

次に実際にメールを送付してみましょう。以下の様なテキストを作成して sendmail コマンドで発行しても良いですし mailコマンドで実施しても良いでしょう。

` from: hogehoge@gmail.com To: testtest@example.com Subject: test Content-Type: text/plain; charset=iso-2022-jp

TEST `

の用な物を aaa.txt に記載しておき sendmail -t < aaa.txt

という感じで送付する事が出来ます。

Step5

実際に送信してみると上手く動作しない場合等があるかもしれません、postfix は多く管理用のコマンドを持っているので調査する事が出来ます。

- キューの確認 : mailq
- キューの強制的な採草 : psotqueue -f

等でまずは調べてみましょう。送信されていないようであれば /var/log/mail.log に解決の糸口があるかもしれません。実際には Mountain Lion 特有の問題ではないのかもしれませんのでググれば糸口は結構見つかると思います。

実際に何のために設定したかと言えば、普段コマンド環境で tmux を利用しているのですがコンソールの画面の内容をさっとメールで送ったりする事が出来るので結構便利に使う事が出来るようになるのです。その際に送信先を evernote のアドレス等にしておくと結構便利に情報を集める事が出来るので助かります。

Postfixメールサーバの構築 (Expert UNIX Series)posted with ヨメレバリチャード ブラム アスキー 2002-03

Postfix実用ガイドposted with ヨメレバKyle D. Dent オライリージャパン 2004-08-15

Hugo で構築されています。
テーマ StackJimmy によって設計されています。