カテゴリー: その他

  • PHPでメール送信

    PHPを使って、日本語メールを送信する

      (1)最初に基本的な機能を確認する(サンプル1を参照)
          ※メールアドレスは適当に読み替えてください
        ・一般的な日本人を想定して「文字コード」はEUCにする
          ※不評ならJISにする
        ・受信者アドレス、件名、本文、送信者アドレスをセットする
          ※送信者は必ずメールサーバーに登録されているアドレスを使用する
          ※当プログラムを処理する環境と同じ環境にメールサーバーを用意する
        ・本文の改行には「¥n」(小文字)を使用する
        ・日本語を扱うため「mb_send_mail」を使用する
        ・リターンコードのチエックは、命令が完了したことだけを確認するのみ
          メールが間違いなく送信されたかどうかは、これとは別に確認する

      (2)文字コードについて
        サンプル1では文字コードを指定している
          使用しているサーバーの文字コードに合わせて文字コード指定する
        実際、メール送信してみると
          文字コードの指定は”無視”されて、JISコードで送信されている
          ヘッダー部に【Content-Type: text/plain; charset=ISO-2022-JP】と入っている
            ※ヘッダー部に指定しない限り、JISコードが自動的に設定される

    サンプル(1)
    サンプル(1)
  • サーバー移設

    サーバー移設に伴って環境が変わった、備忘録として残しておく

      大きな違いは
        WindowsサーバーからUnixサーバーに切り替わった
        PHPとMySQLのバージョンがアップした

      (1)漢字コードの扱いが変わった
        以前はWindows環境のためShift-Jisコードを使っていた
          MySQL周りでは警告メーッセージが表示されていた
          漢字ホルダーが使えるためshift-jisを使い続けていた

        今回Unix環境のためUTF-8コードを使うことにした
          データは文字コードを変換しながら移行した

        通常処理においては問題なし
          一部の文言編集でトラブル発生
            PHPプログラムで動的に漢字文言を切り取って貼り付けていた
          shift-jisでは漢字は2バイト文字として長さを判断していた
          UTF-8では3バイト(原則は不定長)として扱わないといけない
        応急対応はしたが、全面見直しが必要になった

      (2)mb_ストリンング命令が使えない
        Xamppのテスト環境では使えているが、サーバー環境では使えない
          詳しくは原因調査せず
          上記の漢字バイト問題と同じで恒久対応を考える
            【php.ini】を調べてみる

      (3)$_POST命令に切り替える
        $_GET命令を主に使っていた
          URL上に受け渡しパラメータを乗せる方法
        内容が丸見えになるので、$_POSTに順次切り替える
          強力な措置ではないが、人目に晒すことは避けておくことにした
          併せてパラメータチエックを強化する