PHPのmb_send_mail の文字化け対策

  • PHP 4.3.3 にバージョンアップすると、mb_send_mail() で文字化けするようになったという問題も出ているようです
  • 対策
PHPスクリプトのなかに mb_language( "Japanese" ); とする
  • 次に
    php.ini で mbstring.language = Japanese とする

XAMPPでsendmail

PHPのmail()メソッドを利用する際の設定の方法です。

まず、config_default_inc.phpを編集します。 phpのmail()関数を利用して送信するようにします。

# select the method to mail by:
# 0 - mail()
# 1 - sendmail
# 2 - SMTP
$g_phpMailer_method	 = 0;

次に、XAMPPをインストールしたディレクトリまで移動し(例:xampp/)、「sendmail」というディレクトリを見つけます。

そうすると中に、5つほどファイルがある。その内容は、以下の通り。

1.sendmail.exe(本体)
2.license.txt
3.sendmail.ini
4.sendmail_example.ini
5.ReadMe.html

この中の、「sendmail.ini」をBOM無しで開けるメモ帳で開きます。 このファイルの中の次の箇所を書き込みします。

  • smtp_serverは送信する際に利用するサーバーを指定します。
  • gamil経由で送信するには、「stmp.gmail.com」と指定します。
  • smtp_portは送信する際に利用するポートを指定します。
  • gmailのsmtp_serverを利用するならば、「587」と指定します。
  • force_senderはメールの送信元(返信先)を指定します。
  • メーラーなどで見かける、「差出人」に当たる場所です。記述方法はメールアドレスで記述します。

fake sendmailの設定をします。ファイル C:\xampp\sendmail\sendmail.ini

[sendmail]
; you must change mail.mydomain.com to your smtp server
smtp_server=192.168.1.1
error_logfile=error.log

次に、一旦apacheを再起動します。

  • その後XAMPPコントローラーから、Mercuryを起動します。
  • 後はPHP側からmail()メソッドを使い、メールを送信すればよい。試験しましょう。

最後に、php.iniの編集

[mail function]のセクションを以下のように修正。

[mail function]
; For Win32 only.
SMTP = localhost
smtp_port = 587

; For Win32 only.
sendmail_from = 送信元; (メールアドレス書くこと)

Apache を再起動し試してください。

注意

以上でApache+PHP/Perl+MySQLなサーバの出来上がりです。最低限の設定は入っているので、すぐにテスト用に利用することができますが・・・。 セキュリティ上に好ましくない設定が多いので、グローバルIPアドレスを付与した本番環境には利用していません。

 WindowsサーバーではSendmailがつかえないので、代案

  • 方針1.Sendまねーる+レンタルメール で Web上 でメールをつかう
  • 方針2.SMTPサーバーを設置するとリスク(踏み台にされるなど)があるので、しっかりしたレンタルサイトやASP(例えばYahooメール)のSMTP(送る時)とPOP(受け取る時)サーバーを活用。
  • 方針3.送信者にメアドを知らせず、メールを受け取れるフォームメールのcgiを使う
  • 方針4.スパムメールを避けるため、使わないときは切断しておく。
  • 以上の方針で、設置方法を順番に説明

 フリーメールの会員になる。(以下、Yahooの場合で例示)

  • POPとSMTPの両方が使えるので便利
sendmane-yahoo-explane.jpg
  • Yahooでは、Webメールのみでつかう場合とSMTPやPOPを使う場合のどちらか選べます。後者の設定をyahooメールのサイトで行う
sendmane-yahoo-pop.jpg

Sendまねーるの設置

  • php、cgiなどでよく使われるsendmailの代用として 「sendまねーる」 がある。その使い方を示す。
sendmane0.jpg
  • ☆主な機能
    • ・sendmail互換の起動オプション。  (CGIから呼び出す場合の -t -i -oi のみ) ・ヘッダ行のMINEエンコード ・本文のJISコード変換 ・コマンドプロンプトからのメール送信 ・Cc: Bcc: の各ヘッダ行に対応   To: Cc: Bcc: は、カンマ(,)で区切ることで複数の宛先を指定できます。   To: は、-t オプションを指定しないと機能しません。   Cc: は、オプションに関係なく機能します。   Bcc: は、宛先に追加後に削除されますので、送信された人には、見えません。     また、オプションに関係なく機能します。 ・POP before SMTP に対応。
  • 【動作環境】
     Windows9x/Me/2000
     ※SMTPサーバー機能はありません。
     お使いの環境から利用できるSMTPサーバーが必要です。
     (プロバイダーのSMTPサーバー・localのSMTPサーバー 等)

【インストール方法と初期設定】

  •  適当なホルダにダウンロードしたファイルを解凍してください。
 例)C:\sendmane
  •  注:Webサーバーのドキュメントルートは、避けて下さい。  コマンドプロンプトより起動してください。  例の場合ですと、
 C:\>cd sendmane [Enter]
 C:\sendmane>sendmane [Enter]
  •  すると初期設定画面が表示されますので、画面の指示に従って設定してください。
    • SMTPサーバのアドレス:smtp.mail.yahoo.co.jpなど
    • SMTPポート番号?(通常は25)
    •  送信者のメールアドレス:SMTPサーバとの(接続)通信時に使用されるメールアドレス。通常、受信者は知ることができません。
    • 送信者のメールアドレス:送信時のSMTP(POP)認証に利用する実在するメールアドレスを入力。
    • POP before SMTPの使用 Yes=1 ↓
    • POPサーバーのアドレス
    • ユーザー名
    • パスワード
  • 初期設定が終わりましたら、同じフォルダ内にsendmane.iniという設定ファイルが以下の様に出来ていることを確認します。
[SMTP]
Host=smtp.mail.yahoo.co.jp
Port=25
Mail=user@example.com
[POP3]
POPUse=1
Host=pop.mail.yahoo.co.jp
Port=110
User=
Pass=
  •  再設定をする時は、sendmane -init とタイプして   -init オプションをつけて起動してください。
  • 【アンインストール方法】  ホルダーごと削除してください。  レジストリは一切使用しておりません。  
  • 【送信テスト】  アーカイブに送信テスト用のテキストファイルを同梱しています。  コマンドラインより以下のように(type以降を)タイプしてください。
C:\sendmane>type sendtest.txt | sendmane [あなたのメールアドレス]

 このメールが届けば、正常に動作しています。あとは、CGIのsendmailの  パスに、

C:\sendmane\sendmane (例の場合)と設定
 してください。

 (環境によっては、C:/sendmane/sendmane   また、 .exe を付加しないと  正常に機能しないCGIもあります。)

  • 【著作権・使用/配布条件・無保証・免責・サポート等】
     「sendまね~る」(以下、本ソフトウェア)の著作権はナオポンこと
     澤田 直樹さんにあります。
     フリーソフトウェアとして提供されていますので、無償で使用できますが、
     Delphi 6 Personal で制作していますので、個人利用のみ可能です。
     個人利用の場合も直接的、又は間接的に利益を得られる場合は、
     使用できません。これは、Delphi 6 Personal の使用制限によります。
     もし、守られない場合は、作者である私が(株)ボーランドより損害賠償などを
     請求される場合があります。その場合は、いかなる理由があろうとも、無条件で
     使用者にすべてを代償をしていただくことになります。
  •  転載、再配布はオリジナルのままで行ってください。  転載、雑誌掲載などは予め連絡をしてください。

フォームメール スクリプトの設置

  • cgiなどのインストール方法を参照して設置
    Counter: 1011, today: 1, yesterday: 0

添付ファイル: filesendmane-yahoo-pop.jpg 235件 [詳細] filesendmane0.jpg 188件 [詳細] filesendmane-yahoo-kakunin.jpg 89件 [詳細] filesendmane-yahoo-explane.jpg 196件 [詳細]

トップ   差分 バックアップ リロード   一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2012-08-19 (日) 07:25:00 (2108d)