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プログラムを実行した時、ブラウザの
表示->エンコード
でそのプログラムの文字コードが分かる。
これでメール送信関係の開発に取りかかれる~よかった~