PHPMailer发送邮件中文附件名是乱码

PHPMailer发送邮件中文附件名是乱码

可能使用了PHPMailer发送邮件的朋友带中文附件名时会出现乱码,下面我来介绍一个解决办法。

比如我们要发送的附件是“测试.txt”,如果在添加附件的时候强制使用指定文件名的方式:

$mail->AddAttachment($attach, $attach);
那么发送过去的附件文件名将会是乱码,如果不指定:

$mail->AddAttachment($attach, $attach);
那么发送过去的文件名中的中文干脆没了,成了“.txt”。

解决办法

打开class.phpmailer.php,在大概第1007行左右,函数AddAttachment中,有一句

 代码如下 复制代码

//$filename = basename($path);
if (false === strpos($path, ‘/’))
$filename = $this->EncodeHeader($path);
else
$filename = $this->EncodeHeader(substr($path, strrpos($path, ‘/’) + 1));

解决办法二

如果想设置文件名为中文,则在调用AddAttachment时提供中文的name参数(第二个参数)。
比如

 代码如下 复制代码
$mail->AddAttachment(‘temp/2011/test.rar’, ‘测试.rar’);

其它问题:发送中文邮件的时候,中文会出现乱码

我看了一下源码,乱码的产生大概是在将邮件标题转成几个小的=?utf-8?B?…?=时,可能是无意中把中文给截断了产生的,所以我的修改更简单而又略微温柔一点,修改第1185行:

 代码如下 复制代码

$maxlen = 75 – 7 – strlen($this->CharSet);
改成:
$maxlen = 75000 – 7 – strlen($this->CharSet);

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/114223.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • Vim复制粘贴_vim复制粘贴命令

    Vim复制粘贴_vim复制粘贴命令原文地址:http://lsong17.spaces.live.com/blog/cns!556C21919D77FB59!603.entry内容:用vim这么久了,始终也不知道怎么在vim中使用系统粘贴板,通常要在网上复制一段代码都是先gedit打开文件,中键粘贴后关闭,然后再用vim打开编辑,真的不爽;上次论坛上有人问到了怎么在vim中使用系统粘贴板,印象里回复很多,有好几

  • 【python | linux12】模块制作及嵌套的包「建议收藏」

    【python | linux12】模块制作及嵌套的包「建议收藏」在Python中,每个Python文件都可以作为一个模块,模块的名字就是文件的名字。比如有这样一个文件test.py,在test.py中定义了函数add。

  • 信号带宽与信道带宽「建议收藏」

    信号带宽与信道带宽「建议收藏」
    信号带宽是信号频谱的宽度,也就是信号的最高频率分量与最低频率分量之差,譬如,一个由数个正弦波叠加成的方波信号,其最低频率分量是其基频,假定为f=2kHz,其最高频率分量是其7次谐波频率,即7f=7×2=14kHz,因此该信号带宽为7f-f=14-2=12kHz。
       信道带宽则限定了允许通过该信道的信号下限频率和上限频率,也就是限定了一个频率通带。比如一个信道允许的通带为1.5kHz至15kHz,其带宽为13.5kHz,上面这个方波信号的所有频率成分当然能从该信道通过,如果

    2022年10月11日
  • php冒泡排序

    php冒泡排序

    2021年10月15日
  • 充分不必要条件和必要不充分条件的意思_怎么区分充分必要条件

    充分不必要条件和必要不充分条件的意思_怎么区分充分必要条件转载:https://www.zhihu.com/question/30469121充分条件:只要有A,就一定能达成B,A是B的充分条件。充分不必要条件:有A,一定能达到B;就算没有A,也有可

  • tomcat会自动解压war包吗_tomcat war包不解压

    tomcat会自动解压war包吗_tomcat war包不解压推荐文章概述:本文介绍web开发中的项目更新,项目与war方式更新1cd到tomcat的bin目录,执行./shutdown.sh。仍有可能该进程未被关闭,重启会出现问题。2查看运行中的java进程#ps-ef|grepjava推荐文章转自:http://www.cnblogs.com/fatsnake/p/5631785.html将war包拷贝到tomcatwebapps目录下时,如…

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号