PEAR::MailでSMTPサーバーからのメール送信(PEARインストール編)
PEAR::Mailはずっと昔に使ったことがあったのですが、すっかり使い方を忘れていたのでひと通りの作業をやってみました。
いい機会なのでPEARのインストールからやってみています。(今回はインストールまでです。)
今度は忘れないように、備忘録として。
pearのインストール
CentOSだとPEARのパッケージが提供されているので、yumからインストールします。
$ sudo yum -y install php-pear
正常にインストールされたかどうか「pear -V」で確認します。
$ pear -V PEAR Version: 1.4.9 PHP Version: 5.1.6 Zend Engine Version: 2.1.0 Running on: Linux centos.localdomain 2.6.18-194.el5 #1 SMP Fri Apr 2 14:58:35 EDT 2010 i686
チャネルのアップデート
PEARのインストールが完了したら、とりあえずチャネルを最新にアップデートしておきます。
$ sudo pear channel-update pear.php.net [sudo] password for username: Retrieving channel.xml from remote server Update of Channel "pear.php.net" succeeded
PEAR::Mailインストール
ここでようやく「PEAR::Mail」のインストールを行います。
インストールは「pear install -a Mail」で行います。
$ sudo pear channel-update pear.php.net
PEARのバージョンが古いと怒られる
実際にコマンド実行したら、下記のようなメッセージが表示されてインストールが失敗しました。
pear/Mail requires PEAR Installer (version >= 1.5.6), installed version is 1.4.9
PEARのバージョンを「1.4.9」から「1.5.6」にアップグレードしないといけないようです。
但し、「PEAR::Mail」以外の関連するライブラリである「Auth_SASL」「Net_Socket」「Net_SMTP」は正常にインストール出来ました。
$ sudo pear install -a Mail pear/Mail requires PEAR Installer (version >= 1.5.6), installed version is 1.4.9 downloading Net_SMTP-1.4.4.tgz ... Starting to download Net_SMTP-1.4.4.tgz (12,264 bytes) .....done: 12,264 bytes downloading Net_Socket-1.0.10.tgz ... Starting to download Net_Socket-1.0.10.tgz (5,429 bytes) ...done: 5,429 bytes downloading Auth_SASL-1.0.4.tgz ... Starting to download Auth_SASL-1.0.4.tgz (5,795 bytes) ...done: 5,795 bytes install ok: channel://pear.php.net/Auth_SASL-1.0.4 install ok: channel://pear.php.net/Net_Socket-1.0.10 install ok: channel://pear.php.net/Net_SMTP-1.4.4
PEARをアップグレード使用とするが失敗
PEARのバージョンが古いみたいなので、「pear upgrade PEAR」でアップグレードを実施してみますが、見事に失敗しました。
バージョン指定をすると「PEAR-1.5.6」なんて無いとエラーが発生します。
$ sudo pear upgrade pear/PEAR-1.5.6 Failed to download pear/PEAR, version "1.5.6", latest release is version 1.9.1, stability "stable", use "channel://pear.php.net/PEAR-1.9.1" to install Cannot initialize 'pear/PEAR-1.5.6', invalid or missing package file Package "pear/PEAR-1.5.6" is not valid upgrade failed
バージョン指定をしなくても「Console_Getopt」のバージョンが古いというエラーが発生してアップグレードできませんでした。
$ sudo pear upgrade PEAR pear/PEAR dependency package "pear/Console_Getopt" downloaded version 1.3.0 is not the recommended version 1.2.3, but may be compatible, use --force to install pear/Archive_Tar requires PEAR Installer (version >= 1.5.4), installed version is 1.4.9 pear/Console_Getopt requires PEAR Installer (version >= 1.9.1), installed version is 1.4.9 No valid packages found upgrade failed
「--force」で強制的にPEARをアップグレード
WEBを調べてみると、「--force」オプションを付加してコマンドを実行すると、アップグレードできるとの記載がありました。
「--force」を付加すると、「強制的にアップグレード」という意味になるようです。
早速やってみると、警告(warning)は表示されるものの、正常にPEARのアップグレードが出来ました。
$ sudo pear upgrade --force PEAR warning: pear/PEAR dependency package "pear/Console_Getopt" downloaded version 1.3.0 is not the recommended version 1.2.3 warning: pear/Archive_Tar requires PEAR Installer (version >= 1.5.4), installed version is 1.4.9 warning: pear/Console_Getopt requires PEAR Installer (version >= 1.9.1), installed version is 1.4.9 downloading PEAR-1.9.1.tgz ... Starting to download PEAR-1.9.1.tgz (293,587 bytes) ..........................................................done: 293,587 bytes downloading Archive_Tar-1.3.7.tgz ... Starting to download Archive_Tar-1.3.7.tgz (17,610 bytes) ...done: 17,610 bytes downloading Console_Getopt-1.3.0.tgz ... Starting to download Console_Getopt-1.3.0.tgz (4,408 bytes) ...done: 4,408 bytes pgrade ok: channel://pear.php.net/Console_Getopt-1.3.0 upgrade ok: channel://pear.php.net/Archive_Tar-1.3.7 upgrade ok: channel://pear.php.net/PEAR-1.9.1 PEAR: Optional feature webinstaller available (PEAR's web-based installer) PEAR: Optional feature gtkinstaller available (PEAR's PHP-GTK-based installer) PEAR: Optional feature gtk2installer available (PEAR's PHP-GTK2-based installer) To install use "pear install pear/PEAR#featurename"
念のために「pear list」でバージョンを確認すると、PEARが「1.9.1」にバージョンアップしていました。
$ pear list Installed packages, channel pear.php.net: ========================================= Package Version State Archive_Tar 1.3.7 stable Auth_SASL 1.0.4 stable Console_Getopt 1.3.0 stable Net_SMTP 1.4.4 stable Net_Socket 1.0.10 stable PEAR 1.9.1 stable Structures_Graph 1.0.4 stable XML_RPC 1.5.4 stable XML_Util 1.2.1 stable
もう1度、PEAR:mailをインストールしてみる
PEARのバージョンアップが出来たのでもう一度「PEAR::Mail」のインストールを行って見ると、今度は正常にインストールが出来ました。
$ sudo pear install Mail downloading Mail-1.2.0.tgz ... Starting to download Mail-1.2.0.tgz (23,214 bytes) ........done: 23,214 bytes install ok: channel://pear.php.net/Mail-1.2.0
「pear list」で確認すると「Mail 1.2.0 stable」が表示され、正常に「PEAR::Mail」がインストール出来ていることが確認出来ました。
$ pear list Installed packages, channel pear.php.net: ========================================= Package Version State Archive_Tar 1.3.7 stable Auth_SASL 1.0.4 stable Console_Getopt 1.3.0 stable Mail 1.2.0 stable Net_SMTP 1.4.4 stable Net_Socket 1.0.10 stable PEAR 1.9.1 stable Structures_Graph 1.0.4 stable XML_RPC 1.5.4 stable XML_Util 1.2.1 stable
ついでにMail_Mineもインストールする
「PEAR::Mail」がインストール出来たので、調子に乗って「PEAR::Mail_MIME」もインストールしておきます。
$ sudo pear install Mail_Mime downloading Mail_Mime-1.8.1.tgz ... Starting to download Mail_Mime-1.8.1.tgz (31,530 bytes) .........done: 31,530 bytes install ok: channel://pear.php.net/Mail_Mime-1.8.1
「pear list」で確認すると、「Mail_Mime 1.8.1 stable」が表示されていることを確認出来ました。
$ pear list Installed packages, channel pear.php.net: ========================================= Package Version State Archive_Tar 1.3.7 stable Auth_SASL 1.0.4 stable Console_Getopt 1.3.0 stable Mail 1.2.0 stable Mail_Mime 1.8.1 stable Net_SMTP 1.4.4 stable Net_Socket 1.0.10 stable PEAR 1.9.1 stable Structures_Graph 1.0.4 stable XML_RPC 1.5.4 stable XML_Util 1.2.1 stable
とりあえず、今回はここまでになります。
実際にサンプルコード書いてのメール送信については、次になります。
今回参考にしたページ
CentOSにyum経由でPEARをインストールする方法 - Layer8 Reference
http://jp.layer8.sh/reference/entry/show/id/2402
PEARライブラリの追加 - r-tgw.net WEBの備忘録
http://wiki.r-tgw.net/index.php?PEAR%E3%83%A9%E3%82%A4%E3%83%96%E3%83%A9%E3%83%AA%E3%81%AE%E8%BF%BD%E5%8A%A0
PEARのアップグレード(upgrade)に失敗したが、なんとか解決した記録。
http://colo-ri.jp/develop/2009/08/pearupgrade.html
CentOS sudo を設定する - 日々のメモ
http://d.hatena.ne.jp/a__z/20071011