※ ChatGPTを利用し、要約された質問です(原文:PHPMailerのメール受信の文字化けについて)
PHPMailerのメール受信の文字化けについて
このQ&Aのポイント
PHPMailerを使用してメール受信時に日本語文が文字化けする問題について解決方法を教えてください。
スマホで受信したメールの件名と本文が文字化けする問題について説明してください。
PHPMailerを使用して自動転送されるメールの文字化け問題について、解決方法を教えてください。
PHPMailerのメール受信の文字化けについて
付属画像のように日本語文が文字化けしてしまいます。
2台のスマホで受信したのですが、件名の部分と本文の両方文字化けします。もう一つのスマホは本文のみ文字化けします。。ちなみにパソコンで入力フォームで打った文章なのですが、自分のスマホに自動転送された、文字(本文)やタイトルが文字化けしてしまいます。文字化けしないようにするには、どうコードを書いたらよいでしょうか?
やっと、やっと、メールの自動転送まで出来たのですが、つまづいています。
ちなみに、学生でもエンジニアでもありません。仕事の合間に独学で勉強しているものです。いずれ実務では使いますが。低レベルな質問ですみません。
回答よろしくお願いいたします
コードは以下になります。
<?php
// PHPMailer クラスをネーム空間にインポート
use PHPMailer\PHPMailer\PHPMailer;
use PHPMailer\PHPMailer\SMTP;
use PHPMailer\PHPMailer\Exception;
require('PHPMailer/src/PHPMailer.php');
require('PHPMailer/src/Exception.php');
require('PHPMailer/src/SMTP.php');
// 入力内容の取得・変数に格納
$name = $_POST['name']; // 氏名
$to = $_POST['to']; // メールアドレス
$subject = $_POST['subject']; // 件名
$message = $_POST['message']; // 本文
// メール日本語対応
mb_language("japanese");
mb_internal_encoding("UTF-8");
// インスタンス生成
$mail = new PHPMailer(true);
// 文字エンコードを指定
$mail->CharSet = 'utf-8';
try {
// デバッグ設定
// $mail->SMTPDebug = 2; // デバッグ出力を有効化(レベルを指定)
// $mail->Debugoutput = function($str, $level) {echo "debug level $level; message: $str<br>";};
// SMTPサーバの設定
$mail->isSMTP(); // SMTPの使用宣言
$mail->Host = '△.xrea.com'; // SMTPサーバーを指定
$mail->SMTPAuth = true; // SMTP authenticationを有効化
$mail->Username = '■■■@www.com.jp'; // SMTPサーバーのユーザ名
$mail->Password = '△△△'; // SMTPサーバーのパスワード
$mail->SMTPSecure = 'tls'; // 暗号化を有効(tls or ssl)無効の場合はfalse
$mail->Port = 465; // TCPポートを指定(tlsの場合は465や587)
// メール本体
$mail->setFrom('■■■@www.com.jp', 'hazuki'); // 送信元メールアドレスと名前
$mail->addAddress($to, mb_encode_mimeheader($name, 'ISO-2022-JP')); // 送信先メールアドレスと名前
$mail->Subject = mb_encode_mimeheader($subject, 'ISO-2022-JP'); // 件名
$mail->Body = mb_convert_encoding($message, "JIS","UTF-8"); // 本文
// 送信
$mail->send();
echo '送信済み';
} catch (Exception $e) {
echo "送信失敗: {$mail->ErrorInfo}";
}
?>
お礼
ありがとうございました。改善しました。