PHPはmb_send_mail関数やmail関数でメールが送信出来る。


自宅サーバーを立ち上げ、しばらくはメールサーバーはちょっとスパムなど怖かったので


立ちあげずにいたが、そのうち必要になるだろうしやってみた。


出来るけどやらないと、出来ないではまた違ってくるし。



んで、予想どおりコケた。


参考書読みながらメール送信プログラムを作成し、送信から受信まではすんなり出来たのだが、


受信したメールが文字化けしてる。。。


mb_convert_encodingで文字コード変換して送ってみたがまだ文字化けしてる。


非常にまいった。


どの文字コードにしてもまったく直らないので、mb_send_mailを辞めて、mail関数にしてみた。


するとあっさり文字化け解消。



添付ファイルがあるメールはmail関数を使うのがいいらしい。


しかし通常mailよりmb_send_mailの使用が推奨されているので、意地でもmb_send_mailで成功させてやろうと


いろいろ調べてみた。


結果。



プログラムに


mb_language("ja"); // カレントの言語を日本語に設定する

mb_internal_encoding("SJIS"); // 内部文字エンコードを設定する

この2行を追加で成功。


特にmb_convert_encodingも必要ないし、とにかくシンプルでわかりやすくて満足!


mb_internal_encodingで指定する文字コードは私はSJISでコーディングしているのでSJIS

他の場合は変えてやる必要がある。


プログラムの文字コードが分からない場合、PHPプログラムを実行した時、ブラウザの

表示->エンコード

でそのプログラムの文字コードが分かる。


これでメール送信関係の開発に取りかかれる~よかった~