PHPMailer が中国語名の添付ファイルを送信する
再投稿する場合は、この記事が skypupil のブログからのものであることを明記してください (http://blog.csdn.net/u011956441/article/details/44161587)。他の人の努力の結果を尊重してください。ありがとうございます。 !
私のアプリケーションシナリオは次のとおりです。Web ページで、ユーザーが電子メールアドレスを入力して [メールの送信] ボタンをクリックすると、sendMail.php を呼び出して添付ファイル付きの電子メールをユーザーに送信します。
発生した問題は、添付ファイルの名前が英語の場合は正しく送信できますが、添付ファイルの名前が中国語の場合、ユーザーのメールボックスは添付ファイルを受信できません。これが私の解決策です: まずsendMail.phpコードに移動します:
<?php header('Content-Type:text/html; charset=utf-8'); /*调用该php的页面通过$.ajax的POST方法传递过来的参数*/ $toEmailAddress=$_POST['toEmailAddress']; /*PHPMailer引用文件,版本号;5.2.9*/ require_once('PHPUtils/PHPMailer/class.phpmailer.php'); require_once('PHPUtils/PHPMailer/class.smtp.php'); /*新建PHPMailer实例*/ $mail = new PHPMailer(); //$mail->SMTPDebug = 4; // 设置调试信息显示级别 $mail->CharSet = 'UTF-8'; //设定邮件编码,默认ISO-8859-1,如果发中文此项必须设置为 UTF-8 $mail->isSMTP(); // 设定使用SMTP服务 $mail->SMTPAuth = true; // 启用 SMTP 验证功能 $mail->SMTPSecure = 'ssl'; // SMTP 安全协议 $mail->Host = 'smtp.gmail.com'; // SMTP 服务器 $mail->Port = 465; // SMTP服务器的端口号 $mail->Username = 'yours@gmail.com'; // SMTP服务器用户名(你的邮箱账号名) $mail->Password = 'password'; // SMTP服务器密码(你的邮箱登陆密码) $mail->setFrom('yours@gmail.com', 'yourName'); // 设置发件人地址和名称 $mail->addReplyTo('yours@gmail.com', 'yourName'); // 设置邮件回复人地址和名称 $mail->Subject = '标题'; // 设置邮件标题 $mail->AltBody = '为了查看该邮件,请切换到支持 HTML 的邮件客户端'; // 可选项,向下兼容考虑 $mail->msgHTML('你好,这是来自gmail的邮件'); // 设置邮件内容 $mail->addAddress($toEmailAddress); // 收件人地址 //$mail->addAttachment('pdfs/测试.pdf'); // 添加附件 文件路径,发送附件失败 $mail->addAttachment(iconv('utf-8', 'gb2312', 'pdfs/测试.pdf'), '测试.pdf'); // 添加附件 参数1为文件路径,参数2为文件名(邮件附件的名称,可以与实际发送的本地文件名不同) if (!$mail->send()) { echo "发送失败:" . $mail->ErrorInfo; } else { echo "恭喜,邮件发送成功!"; } ?>
上記のコードの問題を解決する鍵はを使用することです"$mail- >AddAttachment(iconv('utf-8', 'gb2312', 'pdfs/test.pdf'), 'test.pdf');" この行。
まず 2 つのメソッドを見てみましょう:
addAttachment -- メソッド
From: PHPMailer::addAttachment()
File: class.phpmailer.php。
説明: 添付ファイルを追加します
パラメータ: パス、名前、エンコーディング、タイプのうち、パスは必須です、その他はオプションです
関数プロトタイプ: addAttachment($パス,$名前 = '', $ Encoding = 'Base64', $ Type = 'Application/Octet-Stream') {} From: PHP (>= 4.0.5)
関数プロトタイプ: string iconv ( string $in_charset 、string $
out_charset 、string $str )
説明: 文字列 str を in_charset から変換します エンコーディングを out_charset に変換します。
上記の 2 つの方法を理解すると、PHPMailer が中国語名の添付ファイルを送信できない理由は、PHPMailer が utf-8 でエンコードされた中国語のファイル パスを正しく読み取れないためであることが理解できるでしょう。ファイルパスをgb2312エンコードに変換すると、正しく送信できるようになります。 最後に、SMTPサーバーのポート番号アドレスを添付します: http://blog.wpjam.com/m/gmail-qmail-163mail-imap-smtp-pop3/
上記では、PHPMailer が中国語名の添付ファイルを送信する方法と、関連する内容を紹介しました。PHP チュートリアルに興味のある友人に役立つことを願っています。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック











PHP 開発の実践: PHPMailer を使用して MySQL データベース内のユーザーに電子メールを送信する はじめに: 現代のインターネットの構築において、電子メールは重要なコミュニケーション ツールです。 ECにおけるユーザー登録やパスワードのリセット、注文確認など、メール送信は欠かせない機能です。この記事では、PHPMailer を使用してメールを送信し、メール情報を MySQL データベースのユーザー情報テーブルに保存する方法を紹介します。 1. PHPMailer ライブラリをインストールする PHPMailer は

Web アプリケーションでは、多くの場合、一度に複数の受信者に電子メールを送信する必要があります。 PHP は非常に人気のある Web 開発言語であり、PHPMailer は電子メールを送信するための一般的な PHP クラス ライブラリです。 PHPMailer は豊富なインターフェイスを提供し、PHP アプリケーションでの電子メール送信をより便利で使いやすくします。この記事では、PHPMailerを使って複数の宛先にメールを送信する方法と手順を紹介します。 PHPMailer をダウンロードするには、まず公式 Web サイト (

PHPとPHPMAILERを使いこなす:メール送信の自動返信機能を実装するには?現代社会では、電子メールは人々が毎日コミュニケーションをとるための重要な方法の 1 つになっています。多くの Web サイトや企業は電子メールを介してユーザーと通信する必要があり、電子メールへの自動返信が非常に重要になっています。この記事では、PHPとPHPMailerライブラリを使ってメール送信の自動返信機能を実装する方法を紹介します。ステップ 1: ユーザーの電子メール情報を取得する まず、ユーザーの電子メール情報を取得する必要があります。 Web サイトまたはアプリケーションで使用します。

PHP と PHPMAILER を使用して画像が埋め込まれた HTML メールを送信するにはどうすればよいですか? HTML 電子メールは、電子メールに画像、リンク、スタイルを挿入できる、より充実したパーソナライズされた電子メール形式です。埋め込み画像とは、画像を添付ファイルとして送信するのではなく、HTML メールの電子メールの一部として直接送信することを指します。 PHP では、PHPMAILER を使用して、画像が埋め込まれた HTML 電子メールを送信できます。 PHPMAILER は強力な PHP 電子メール送信ライブラリです

PHP と PHPMAILER: 電子メール送信用のスパム対策機能を実装するにはどうすればよいですか?はじめに: インターネット時代において、電子メールは私たちの日常生活や仕事に欠かせないものになりました。しかし、電子メールの普及と利用に伴い、スパム問題はますます深刻化し、ユーザーに多大な迷惑を与えています。この問題を解決するために、この記事では、PHP と PHPMailer ライブラリを使用して、メール送信のスパム対策機能を実装する方法を紹介します。 1. スパムを理解する スパムとは、一方的に送信されるスパムを指します。

PHPMailer ライブラリを使用して PHP で添付メールを送信する方法と注意点. 電子メールは現代生活において非常に重要なコミュニケーション手段となっています。多くの開発プロジェクトでは、コードを使用して電子メールを自動的に送信する必要がありますが、現時点では PHPMailer ライブラリが最適な選択です。 PHPMailer は、PHP での電子メール送信専用のライブラリです。 HTML形式のメールや添付ファイルを含むメールを簡単に送信できます。この記事では、PHPMailer ライブラリで添付ファイル付きの電子メールを送信する方法に焦点を当てます。

CakePHP は、MVC モデルに基づく PHP オープン ソース フレームワークで、開発者に効率的でスケーラブルで保守が容易な Web アプリケーション開発環境を提供するように設計されています。その中でも、メール機能は常に Web アプリケーションの重要なコンポーネントの 1 つです。開発者がメール機能を使いやすくするために、PHPMailer クラス ライブラリが CakePHP にカプセル化されています。 PHPMailer は、HTML 電子メール、添付ファイル、カーボン コピー、メール キュー、SMTP 検証の送信などの機能をサポートする、一般的に使用される電子メール送信ライブラリです。本

PHP と PHPMailer を使用して HTML 形式のメールを送信するにはどうすればよいですか?インターネットの発展に伴い、電子メールは人々の日常のコミュニケーションに重要なツールになりました。 Web サイトやアプリケーションを開発する場合、多くの場合、PHP および PHPMailer を使用して電子メールを送信する必要があります。この記事では、PHP と PHPMailer を使用して HTML 形式で電子メールを送信する方法と、対応するコード例を紹介します。ステップ 1: 準備 始める前に、PHP と PHHPMaile がインストールされていることを確認する必要があります。
