PHPMailer发送中文名称附件
转帖请注明本文出自skypupil的博客(http://blog.csdn.net/u011956441/article/details/44161587),请尊重他人的辛勤劳动成果,谢谢!
我的应用场景是:在一个网页上当用户输入邮箱地址并点击“发送邮件”按钮后,调用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/测试.pdf'), '测试.pdf');”这行。
先来看两个方法:
addAttachment--方法
出自:PHPMailer::addAttachment()
文件:class.phpmailer.php。
说明:添加附件。
参数:路径,名称,编码,类型。其中,路径为必选,其它为可选
函数原型:addAttachment($path,$name = '',$encoding = 'base64',$type = 'application/octet-stream'){}
iconv--方法
出自:PHP (>= 4.0.5)
函数原型:string iconv ( string $in_charset , string $out_charset , string $str )
说明:将字符串 str 从 in_charset 转换编码到 out_charset。
了解了上面两个方法后,就明白了PHPMailer之所以不能发送中文名称的附件,是因为PHPMailer不能正确读取utf-8编码的中文文件路径,只要将文件路径转换成gb2312编码后,就能正确发送了。
最后,附上SMTP服务器端口号地址:http://blog.wpjam.com/m/gmail-qmail-163mail-imap-smtp-pop3/
以上就介绍了PHPMailer发送中文名称附件,包括了方面的内容,希望对PHP教程有兴趣的朋友有所帮助。

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Dans les applications Web, il est souvent nécessaire d’envoyer des emails à plusieurs destinataires à la fois. PHP est un langage de développement Web très populaire et PHPMailer est une bibliothèque de classes PHP courante pour l'envoi d'e-mails. PHPMailer fournit une interface riche, rendant l'envoi d'e-mails dans des applications PHP plus pratique et plus facile à utiliser. Dans cet article, nous présenterons les méthodes et les étapes à suivre pour utiliser PHPMailer pour envoyer des e-mails à plusieurs destinataires. Pour télécharger PHPMailer, vous devez d'abord vous rendre sur le site officiel (

Pratique de développement PHP : utilisez PHPMailer pour envoyer des e-mails aux utilisateurs de la base de données MySQL Introduction : Dans la construction de l'Internet moderne, l'e-mail est un outil de communication important. Qu’il s’agisse d’enregistrement d’utilisateur, de réinitialisation de mot de passe ou de confirmation de commande en e-commerce, l’envoi d’emails est une fonction essentielle. Cet article explique comment utiliser PHPMailer pour envoyer des e-mails et enregistrer les informations de courrier électronique dans le tableau d'informations utilisateur de la base de données MySQL. 1. Installez la bibliothèque PHPMailer PHPMailer est

Comment envoyer du courrier HTML avec des images intégrées en utilisant PHP et PHPMAILER ? Le courrier électronique HTML est une forme de courrier électronique plus riche et plus personnalisée qui permet d'insérer des images, des liens et des styles dans le courrier électronique. Les images intégrées font référence à l'envoi d'images directement dans le cadre de l'e-mail HTML au lieu de les envoyer sous forme de pièces jointes. En PHP, nous pouvons utiliser PHPMAILER pour envoyer des e-mails HTML avec des images intégrées. PHPMAILER est une puissante bibliothèque de classes d'envoi d'e-mails PHP

PHP et PHPMAILER : Comment implémenter la fonction anti-spam pour l'envoi d'email ? Introduction : À l'ère d'Internet, le courrier électronique est devenu un élément indispensable de notre vie quotidienne et de notre travail. Cependant, avec la popularité et l'utilisation du courrier électronique, le problème du spam est devenu de plus en plus grave, causant de nombreux problèmes aux utilisateurs. Afin de résoudre ce problème, cet article présentera comment utiliser PHP et la bibliothèque PHPMailer pour implémenter la fonction anti-spam d'envoi d'e-mails. 1. Comprenez que le spam fait référence aux spams non sollicités.

Maîtriser PHP et PHPMAILER : Comment implémenter la fonction de réponse automatique pour l'envoi d'email ? Dans la société moderne, le courrier électronique est devenu l’un des moyens importants de communication dans la vie quotidienne. De nombreux sites Web ou entreprises doivent communiquer avec les utilisateurs par e-mail, et la réponse automatique aux e-mails est devenue très importante. Cet article explique comment utiliser PHP et la bibliothèque PHPMailer pour implémenter la fonction de réponse automatique pour l'envoi d'e-mails. Étape 1 : obtenir les informations de messagerie de l'utilisateur. Tout d'abord, nous devons obtenir les informations de messagerie de l'utilisateur. Sur un site Web ou une application, utilisez

Méthodes PHP et précautions pour l'envoi de pièces jointes à l'aide de la bibliothèque PHPMailer Le courrier électronique est devenu un moyen de communication très important dans la vie moderne. Dans de nombreux projets de développement, nous devons utiliser du code pour envoyer automatiquement des e-mails. Pour le moment, la bibliothèque PHPMailer est notre meilleur choix. PHPMailer est une bibliothèque dédiée à l'envoi d'emails en PHP. Il peut facilement envoyer des e-mails, y compris des e-mails et des pièces jointes au format HTML. Cet article se concentrera sur la façon d'envoyer des e-mails avec des pièces jointes dans la bibliothèque PHPMailer.

PHP est un langage de programmation puissant largement utilisé dans le domaine du développement Web. La fonction de messagerie SMTP constitue également une partie importante du développement PHP. Cependant, dans certains cas, vous souhaiterez peut-être désactiver la fonctionnalité de messagerie SMTP, et cet article vous expliquera comment procéder.

Comment envoyer des emails HTML avec des images en utilisant PHP et PHPMailer ? Le courrier électronique joue un rôle important dans la communication moderne, mais l'envoi de courriers électroniques HTML contenant des images peut dérouter certains développeurs PHP. Dans cet article, nous présenterons comment utiliser PHP et PHPMailer pour envoyer des e-mails HTML avec des images. Nous fournirons des exemples de code pour vous aider à mieux comprendre comment y parvenir. Tout d'abord, nous devons nous assurer que la bibliothèque PHPMailer est installée dans notre projet
