フォローされた時や、お気に入りに追加された時に、ユーザにメール通知
されるようになるので、SMTP の設定をすると良いでしょう。パスワードを
忘れた時にユーザが再発行手続きを行えるので、メンテナンスコストも下
がります。
以下は認証なしの SMTP サーバの場合です。config.php に追記します。
// Email info, used for all outbound email
$config['mail']['notifyfrom'] = '[email protected]';
// Domain for generating no-reply and incoming email addresses, if enabled.
// Defaults to site server name.
$config['mail']['domain'] = 'example.com';
// See http://pear.php.net/manual/en/package.mail.mail.factory.php for options
$config['mail']['backend'] = 'smtp';
$config['mail']['params'] = array(
'host' => 'SmtpServerName',
'port' => 25,
);
$config[‘mail’][’notifyfrom’] は StatusNet が送るメールの From: に
なります。適当に設定してください。
私が設置したクリーンルームでは、メールヘッダが常に文字化けしてしま
いました。メールサーバが怪しげな変換をしているようなんですが、そも
そも StatusNet がメールヘッダの MIME ENCODE をしていないことが原因
です。
適当なパッチを作りましたので、もし困っていたらご利用下さい。
--- orig/statusnet-0.9.1/lib/mail.php 2010-03-29 00:39:56.000000000 +0900
+++ statusnet-0.9.1/lib/mail.php 2010-04-25 17:52:56.000000000 +0900
@@ -78,6 +78,9 @@
if (!isset($headers['Content-Type'])) {
$headers['Content-Type'] = 'text/plain; charset=UTF-8';
}
+ if (!isset($headers['MIME-Version'])) {
+ $headers['MIME-Version'] = '1.0';
+ }
assert($backend); // throws an error if it's bad
$sent = $backend->send($recipients, $headers, $body);
if (PEAR::isError($sent)) {
@@ -149,8 +152,8 @@
$profile = $user->getProfile();
$headers['From'] = mail_notify_from();
- $headers['To'] = $profile->getBestName() . ' <' . $address . '>';
- $headers['Subject'] = $subject;
+ $headers['To'] = mb_encode_mimeheader(mb_convert_encoding($profile->getBestName(), 'UTF-8')) . ' <' . $address . '>';
+ $headers['Subject'] = mb_encode_mimeheader(mb_convert_encoding($subject, 'UTF-8'));
return mail_send($recipients, $headers, $body);
}
@@ -236,11 +239,12 @@
$headers = _mail_prepare_headers('subscribe', $listenee->nickname, $other->nickname);
$headers['From'] = mail_notify_from();
- $headers['To'] = $name . ' <' . $listenee->email . '>';
- $headers['Subject'] = sprintf(_('%1$s is now listening to '.
- 'your notices on %2$s.'),
- $other->getBestName(),
- common_config('site', 'name'));
+ $headers['To'] = mb_encode_mimeheader(mb_convert_encoding($name, 'UTF-8')) . ' <' . $listenee->email . '>';
+ $headers['Subject'] = mb_encode_mimeheader(mb_convert_encoding(sprintf(_('%1$s is now listening to '.
+ 'your notices on %2$s.'),
+ $other->getBestName(),
+ common_config('site', 'name')),
+ 'UTF-8'));
$body = sprintf(_('%1$s is now listening to your notices on %2$s.'."\n\n".
"\t".'%3$s'."\n\n".
@@ -286,9 +290,10 @@
$name = $profile->getBestName();
$headers['From'] = $user->incomingemail;
- $headers['To'] = $name . ' <' . $user->email . '>';
- $headers['Subject'] = sprintf(_('New email address for posting to %s'),
- common_config('site', 'name'));
+ $headers['To'] = mb_encode_mimeheader(mb_convert_encoding($name, 'UTF-8')) . ' <' . $user->email . '>';
+ $headers['Subject'] = mb_encode_mimeheader(mb_convert_encoding(sprintf(_('New email address for posting to %s'),
+ common_config('site', 'name')),
+ 'UTF-8'));
$body = sprintf(_("You have a new posting address on %1\$s.\n\n".
"Send email to %2\$s to post new messages.\n\n".
@@ -413,9 +418,10 @@
$headers = array();
$headers['From'] = ($incomingemail) ? $incomingemail : mail_notify_from();
- $headers['To'] = $to;
- $headers['Subject'] = sprintf(_('%s status'),
- $other->getBestName());
+ $headers['To'] = mb_encode_mimeheader(mb_convert_encoding($to, 'UTF-8'));
+ $headers['Subject'] = mb_encode_mimeheader(mb_convert_encoding(sprintf(_('%s status'),
+ $other->getBestName()),
+ 'UTF-8'));
$body = $notice->content;
@@ -439,8 +445,8 @@
$recipients = $address;
$headers['From'] = mail_notify_from();
- $headers['To'] = $nickname . ' <' . $address . '>';
- $headers['Subject'] = _('SMS confirmation');
+ $headers['To'] = mb_encode_mimeheader(mb_convert_encoding($nickname, 'UTF-8')) . ' <' . $address . '>';
+ $headers['Subject'] = mb_encode_mimeheader(mb_convert_encoding(_('SMS confirmation')));
// FIXME: I18N
追記(2010-04-29):
メールヘッダの文字化け対策用のパッチを追加しました。