mb_send_mailの第5引数のことで

mail関数でもmb_send_mail関数でも同じだが、第5引数があれば、それはMTAにコマンドラインパラメータとして渡される。これにより受信するメールヘッダにReturn-Pathがセットされ正しくエラーメールが届くようになったり、スパムと判断されにくくなったりする。書式はメールアドレスの前に「-f」とつけるだけ。

ただ、第5引数を与えても、Return-Pathが環境によって付加されないことがわかった。おそらくメール転送に起因するようだ。

現在メインのメールアカウントとしてgmailを使用している。会社ドメインやその他独自ドメインは種々のレンタルサーバで運用しており、メールアドレスはレンタルサーバ内でアカウントを作成しておいて、すべてgmailに転送するよう設定している。

例えばサーバAにメールアカウントを設定してgmailに転送し、以下のスクリプトを流すと、受信したメールには適切にReturn-Pathに値が設定されている。

mb_send_mail(‘Aサーバ上のメールアドレス’,’タイトル’,’本文’,’From: 適当なメールアドレス’,’-f適当なメールアドレス’);

ここで「Aサーバ上のメールアドレス」を「Bサーバ上のメールアドレス」に変更する。A同様Bでもgmailに転送するよう設定している。こちらの場合はReturn-Pathに値が未設定の状態でメールが届いた。以下のような感じ。

Return-Path: <>

mb_send_mail(‘kitao@komamono.com’,’試験’,’テスト’,’From: info@fishup.net’,’-finfo@fishup.net’);

どうやら、レンタルサーバの各種設定(おそらくはMTAの設定)によって、挙動が変わるようだ。これは多分転送設定した場合に現れるようで、転送なしの場合はどのサーバでも問題なく動作するようだ(上記のサーバでも直接gmailのメールアドレスを指定した場合は両方とも問題なかった)。レンタルサーバも、特にココ、というわけではなく複数のレンタルサーバで同様の問題が出ることを確認した。

でも、これ。レンタルサーバのMTAの問題だからどうにもならなさそう。

CPIでの嫌なPHP設定

レンタルサーバCPIのサーバを、実はあまり好きではない。デフォルトの設定が嫌なのだ。

mbstring.encoding_translation on
mbstring.internal_encoding EUC-JP

いまどき、こんな初期設定がされているサーバって…と思うが、それはまぁ、仕方のないこと。注意としては.htaccessでは設定できないところ。設定方法はSixCore共用サーバに近い。php.iniファイルを作成して、以下のように記述し、設定を反映させたいディレクトリにファイルを設置する。

mbstring.encoding_translation=off

設置したディレクトリの下位のディレクトリには、この設定は反映されない。反映させるには別途設定が必要。もしくは同じ記述のphp.iniを、やはり設定を反映させたいディレクトリに設置する。

最初から、何の設定もされてなければいいのに。

CPIでPHP(2009年8月現在)

クライアントがCPIを使っていると、毎回PHPを動かす方法を調べないといけない。それは何もせずにサーバにphpファイルを設置しても動作しないからだ。<?php phpinfo(); ?>と書いたファイルをアップしても<?php phpinfo(); ?>としか表示してくれないので困ってしまう。

数年前にも同じことを調べた。CPIでは、PHPはCGIとして動作するよう設定されている。当時はファイルの一行目にPHP実行ファイルへのパスを記述して動作させた。今回再度調べてみたのだが、もう少し簡単になっていた。具体的には.htaccessファイルを用意し、以下のように記述しておけばよい。

AddHandler x-httpd-php524 .php

ちなみに2009年8月時点では以下のバージョンが使えるらしい。

  • 4.4.7
  • 4.4.9
  • 5.2.4
  • 5.2.8
.htaccessに記載で数字の部分をそのままバージョンに置き換えればいいようだ。バージョンの指定もできるし、便利といえば便利なんだけどね。レンタルサーバ、それぞれによって設定方法が変わったり、デフォルト設定が変わったりするのは、仕方ないことだとわかってはいるけれど、若干のストレスになることは確かだ。

SixCoreでのPHP個別設定

いろんなレンタルサーバを借りている。レンタルサーバも様々、各社各様設定方法もいろいろあるようだ。現在、株式会社ベットが提供する安価なレンタルサーバでプログラムを開発している。ここの会社には2種類のサービスがあり、それらはXserver(廉価版)とSixCore。たいていの場合は同じ会社であれば、たいてい設定に関するやり方は同じなのだが、この2つの場合はそうではなかった。

phpのエラーを表示させたいのだが、デフォルトでは非表示だ。PHP設定の変更は、一般的には.htaccess内に記述するのだが、この会社のサーバはphp.iniとうファイルを作成してその中に記述することになる。そして、その設定は、ファイルを設置したディレクトリ内のファイルだけに有効となり、下の階層には同様にphp.iniを設置してやらなくてはいけない(一番上の階層に置いた場合はその必要はないみたい)。

同じように、SixCoreの場合でもphp.iniを作成して設置してみた。変化なし。おいおい、と思って調べてみて思い出した。わざわざ.htaccessファイルに「追加設定はここに置きました」というお知らせを書かなくてはいけない。

suPHP_ConfigPath /home/ユーザ名/ドメイン名/php.ini設置ディレクトリ/

はぁ。suPHPなわけですが、わざわざ書かなくちゃいけないんですね。同じような失敗を前にもした記憶があります。ということでメモしておきます。



格安海外サーバbyohosting.com

2007/09/23 | 海外サーバ

また海外の格安レンタルサーバを使おうと思案している。
わりとまじめに調べたが3ix.comにかなうところは見つけられなかった。今のところ3ixは最強サービスのようだ(安さ、提供内容共に文句なし)。

3ix.com

サポートもいろいろ融通を利かせてくれるので基本的に文句はないのだが、とあるプログラムの設置ですごくもめた。チャットでものすごくごねたのだが(もちろん、適当な英語で)、聞き入れられなかった。3日くらいもめた。

そこで、その問題のプログラム(phpで書いたスクリプト)をおかせてくれる格安サーバを調査中。基本センスとして1ヶ月1$で使えるサーバだ。でみつけたのはこんな感じ。

http://www.tooniehosting.ca/
http://www.extraservers.com/
http://www.byohosting.com/

ところが、設置できるかどうかを聞くにも、サポートチャットのシステムがないのだ。ウェブフォームから問い合わせないといけないので少し時間がかかってしまうし、いっぱい質問したいときとかすごく面倒。ちょっと行き詰ってしまった。とりあえず上記3つ(実は他にもう1個問い合わせ中)に問い合わせしてみなければ・・・。実際に使う段階になったら、その使用感をレポートする予定。

もし海外サーバの利用をトライしようと思っていて、このサイトを見つけた人がいたら、その人たちにメッセージ。英語なんてホント適当でいいです。文法も必要なくて、ひたすらやりたいことを連呼するだけです。まぁ、格安の1$サーバでトライしてみてください。月額1$だからダメ元でも全然痛くないので・・・。


守谷市(まちの情報ポータル) 無料アンケートレンタルjpForm.net