7月 25 2012

PEAR::Mailの導入

「PEAR::mail 」と「PEAR::Net_SMTP」をpearコマンドでインストール

# pear install -f --alldeps mail Net_SMTP
WARNING: channel "pear.php.net" has updated its protocols, use "pear channel-update pear.php.net" to update
WARNING: "pear/Auth_SASL" is deprecated in favor of "pear/Auth_SASL2"
downloading Mail-1.2.0.tgz ...
Starting to download Mail-1.2.0.tgz (23,214 bytes)
........done: 23,214 bytes
downloading Net_SMTP-1.6.1.tgz ...
Starting to download Net_SMTP-1.6.1.tgz (13,164 bytes)
...done: 13,164 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.6.tgz ...
Starting to download Auth_SASL-1.0.6.tgz (9,119 bytes)
...done: 9,119 bytes
install ok: channel://pear.php.net/Mail-1.2.0
install ok: channel://pear.php.net/Net_Socket-1.0.10
install ok: channel://pear.php.net/Auth_SASL-1.0.6
install ok: channel://pear.php.net/Net_SMTP-1.6.1

なんかWARNINGが出ているけど install ok となっているのでこのままでいいのかな。

で、メール送信用のコードはこんな感じ。

<?php

//PEAR::Mailのインクルード
require_once("Mail.php");

//日本語メールを送る際に必要
mb_language("Japanese");
mb_internal_encoding("UTF-8");

$params = array(
'host' =&gt; 'smtp.xxxxxxx.ne.jp',
'port' =&gt; '587',
'auth' =&gt; true,
'username' =&gt; 'whostown',
'password' =&gt; '1234567890',
);

// 送信先のメールアドレス
$recipients = 'test@docomo.ne.jp';

$headers['From']    = 'test@myserver.net';
$headers['To']      = 'test@docomo.ne.jp';
$headers['Subject'] = mb_encode_mimeheader("テストだよ!");

$body = "OKn日本語対応n";
$body = mb_convert_encoding($body, "ISO-2022-JP", "UTF-8");
$objMail =&amp; Mail::factory('smtp', $params);
$result = $objMail-&gt;send($recipients, $headers, $body);
if (PEAR::isError($result)) {
die($result-&gt;getMessage());
}
?>

これでSMTP送信できました。

7月 24 2012

気がつくとメールログが大量に…

メールのログが大量に溜まっていた、表示に時間がかかるな~何て思っていたらもの凄い量だった。

とりあえず、メールログを削除、メールのキューも削除、でもすぐさま増え出す。

誰がメール出してんだー

まずpostfixを停止してみる。

ログにsendmailのなんたらとログに記録されている、sendmailは起動していないのに???

いろいろ調べてみるとcronが原因らしい。

こちらを参考にcronのMAILTOを””に変更した。

これでOK。

 

(メモ)
/var/spool/postfix/deferに溜まっているキューを削除
postsuper -d ALL defer
postsuper -d ALL deferred
ついでに/var/spool/clientmqueueも削除

Alibi3col theme by Themocracy