「WordPressで学ぶPHP(1)変数・制御構造編」が発売されました。
「WordPressで学ぶPHP」シリーズの第1巻で、WordPressを通してPHPを学んでいく本です。
この本では、PHPの基本となる変数と制御構造について解説します。
Kindle本で、定価500円です。
JumpBoxを使ったローカル環境の作成(その11・メール送信の設定)
LAMPdには、メールサーバーのPostfixもインストールされています。
ただ、一般的なユーザーで、プロバイダ経由でインターネットに接続している場合、プロバイダのOP25B(Outbound Port 25 Blocking)によって、LAMPdから外部へメールを送信することができません。
そこで、Yahooメールのメールサーバーにメールを中継して、LAMPdから外部へメールを送信する方法を紹介します。
1.Yahoo IDの取得
Yahooメールを中継してメールを送信するために、Yahoo JapanのIDをお持ちでない方は、あらかじめYahoo IDを取得してください。
2.Postfixの設定の書き換え
次に、Postfixの設定ファイル(main.cf)を書き換えて、Yahooのメールサーバーにメールを中継するようにします。
「sudo nano /etc/postfix/main.cf」のコマンドを入力すると、「nano」というテキストエディタが起動します。
カーソルキーを押してmain.cfファイルの末尾に移動し、以下の内容を追加します。
smtpd_sasl_auth_enable = no smtp_sasl_auth_enable = yes smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd smtp_sasl_security_options = noanonymous smtpd_sasl_local_domain = $mydomain smtpd_sasl_application_name = smtpd relayhost = [smtp.mail.yahoo.co.jp]:587
main.cfの書き換えが終わったら、Ctrlキー+Xキーを押します。
「Save modified buffer」のメッセージが表示されますので、「Y」キーを押します。
次に、ファイル名を入力する状態になりますので、そのままEnterキーを押します。
これで、ファイルが保存され、nanoが終了します。
3.パスワードマップファイルの作成
次に、Yahooのメールサーバーに接続するための、ユーザー名とパスワードの対応を書いたファイルを作ります。
まず、「sudo nano /etc/postfix/sasl_passwd」のコマンドを入力します。
すると、nanoが起動して、空のファイルを編集する状態になりますので、以下のように入力します。
[smtp.mail.yahoo.co.jp]:587 Yahoo ID:パスワード
また、「パスワード」には、Yahooにログインする際のパスワードを書きます。
例えば、Yahoo IDが「abc12345」、パスワードが「hogehoge」の場合だと、以下のように書きます。
[smtp.mail.yahoo.co.jp]:587 abc12345:hogehoge
入力が終わったら、Ctrlキー+Xキーを押してファイルを保存し、nanoを終了します。
そして、以下のコマンドを入力して、パスワードのデータベースファイルを作ります。
sudo postmap /etc/postfix/sasl_passwd
4.Postfixの再起動
次に、以下のコマンドを入力して、Postfixを再起動します。
sudo postfix reload
5.Mail.pmの書き換え(Movable Type)
Movable Typeからメールを送信できるようにしたい場合、JumpboxのMovable Typeのディレクトリの中で、「lib」→「MT」ディレクトリにある「Main.pm」ファイルを書き換えます。
Movable Type 5.01だと、Mail.pmの156行目を以下のように書き換えます。
「Yahoo ID」の箇所は、ご自分のYahoo IDに置き換えます。
書き換え前
exec $sm_loc, "-oi", "-t" or
書き換え後
exec $sm_loc, '-f Yahoo ID@yahoo.co.jp', "-oi", "-t" or
6.php.iniの書き換え
WordPress等のPHPのアプリケーションからメールを送信できるようにする場合、php.ini(PHPの設定ファイル)の「sendmail_path」の行を書き換えます。
まず、以下のコマンドを実行して、php.iniを編集する状態にします。
sudo nano /etc/php5/apache2/php.ini
次に、Ctrlキー+Wキーを押して検索を行う状態にし、キーワードとして「sendmail_path」を入力して、Enterキーを押します。
すると、以下の行にカーソルが移動します。
;sendmail_path =
この行を以下のように書き換えます。
「Yahoo ID」の箇所は、ご自分のYahoo IDに置き換えます。
sendmail_path = /usr/sbin/sendmail -f Yahoo ID@yahoo.co.jp -t -i
書き換えが終わったら、Ctrlキー+Xキーを押してファイルを保存し、nanoを終了します。
そして、以下のコマンドを実行して、Apacheを再起動します。
sudo /etc/init.d/apache2 restart