PHPMailer によって送信されたメール内の中国語の添付ファイル名が文字化けする問題の解決策

WBOY
リリース: 2016-07-25 08:59:42
オリジナル
1413 人が閲覧しました
  1. $mail->AddAttachment($attach, $attach);
コードをコピー

指定しない場合、送信される添付ファイル名は文字化けします。

  1. $mail->AddAttachment($attach, $attach);
コードをコピー

送信したファイル名の中国語が消えて「.txt」になります。

解決策 1

class.phpmailer.php を開き、1007 行目あたりの関数 AddAttachment に次の文があります。

  1. //$filename =basename($path);
  2. if (false === strpos($path, '/'))
  3. $filename = $this->EncodeHeader($path);
  4. else
  5. $filename = $this->EncodeHeader(substr($path, strrpos($path, '/') + 1));
コードをコピー

解決策 2

ファイル名を中国語に設定する場合は、AddAttachment を呼び出すときに中国語名パラメーター (2 番目のパラメーター) を指定します。 例えば

  1. $mail->AddAttachment('temp/2011/test.rar', 'test.rar');
コードをコピー

その他の問題: 中国語のメールを送信すると、中国語が文字化けして表示されますコード

文字化けは、おそらくメールのタイトルがいくつかの小さなものに変換されるときに発生します =?utf-8?B?...?=、および中国語が誤って切り捨てられる可能性があります 行 1185 を変更します。

  1. $maxlen = 75 - 7 - strlen($this->CharSet);
コードをコピー

して、次のように変更します。

  1. $maxlen = 75000 - 7 - strlen($this->CharSet);
コードをコピー

添付、PHPMailerメール送信クラスV5.1ダウンロードアドレス。



ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!