1、原因,第三方‘PHPMail’控件类里面定义了最大行显示长度为76,当超过76就会自动换行

2、解决办法,在PHPMail类里面修改其指定值

/**
* The lower maximum line length allowed by RFC 2822 section 2.1.1.
* This length does NOT include the line break
* 76 means that lines will be 77 or 78 chars depending on whether
* the line break format is LF or CRLF; both are valid.
*
* @var int
*/
const STD_LINE_LENGTH = 150;

3、附带发邮件代码

namespace test; use PHPMailer\PHPMailer\PHPMailer; class test{ public function myTest() { $this->senMail('xxx@qq.com','ceshi','body',['./a.txt','附件名']); * 发送邮件【支持163和QQ邮箱】 * @param string $address 发送地址 * @param string $subject 主题 * @param string $body 内容 * @param array $fileArr 附件 * @param string $isHtml 是否是html合适显示 * @param string $type 【163和QQ】 默认用163 * @return string 返回结果 public function sendMail($address, $subject, $body = '', $fileArr = [], $isHtml = false, $type = '163') { ignore_user_abort(); set_time_limit(0); $mail = new PHPMailer(); // service set begin $mail->SMTPDebug = 0; $mail->isSMTP(); $mail->SMTPAuth = true; $mail->Username = 'xxxxx@163.com'; $mail->Password = '授权嘛'; $mail->CharSet = 'utf-8'; $mail->Host = 'smtp.163.com'; if ($type == '163') { $mail->Port = 25; $mail->Host = 'smtp.163.com'; } else { // QQ $mail->Port = 456; $mail->SMTPSecure = 'ssl'; $mail->Host = 'smtp.qq.com'; // end $mail->setFrom($mail->Username, ''); $mail->addAddress($address); $mail->isHTML($isHtml); $mail->Subject = $subject; $mail->Body = $body ? $body : ' '; if ($fileArr && is_array($fileArr)) { $mail->addAttachment($fileArr[0], $fileArr[1]); $status = $mail->send(); $log = $status ? "[$address]邮件发送成功:" . date('Y-m-d H:i:s') : "[$address]邮件发送失败,错误信息:" . $mail->ErrorInfo; `echo '{$log}' >> mail.log `; return $status; 最近需要用到 发送邮件 的功能,原本是用 PHP 自带的mail()函数发送的。 php mail()这个方法非常简单、方便、易用,但是除了网易邮箱、QQ邮箱、GMAIL邮箱等常用的邮箱可以收到之外,经测试HOTMAIL、TOM、LIVE等邮箱是收不到此类邮件的。所以就转而使用 PHP Mailer这个强大的邮件发送类。使用官方自带的一些例子,有些会报 Mailer Error: Could not insta... 本文章向大家介绍 php 中如何 发送邮件 php 发送邮件 一般有两种方法,第一种方法是使用 php 内置函数mail(),第二种方法是使用第三方类库,比如 PHP Mailer,相比较而言,使用第三方类库更好,因为使用 php mail()函数 发送邮件 有局限性。 1例如以下,在执行的时侯路径会被 空格 截取, 空格 后面默认为另一个参数。这是因为第一个参数为窗户口名,可以这样写去解决路径存在 空格 的问题。解决方法,1可以加引号,2,将 空格 用其他符号替代。但是可能还是会 出现 问题,你执行的可能是一个标题是路径名的cmd。... 我想知道这里是否有PEAR邮件或PEAR邮件队列经验的人可以帮助我解决这个问题。我正在使用PEAR创建批量邮件服务,并且正在添加X-header以提供有关人们在何时何地注册的信息。因此,我正在尝试创建类似于以下 内容 的X标头:X-Subscription: Subscribed on 2010/09/01, via web form, by 92.8.196.121 from http://mydo... 在项目开发过程中, 发送邮件 时要在中文 内容 后面拼接一段英文 内容 ,且中英文 内容 换行 显示。 刚开始在java代码中使用"\r\n"(“\n”-- 换行 、“\r”--回车),代码调试时,字符串已经 换行 ,但是邮箱接收展示之后,英文 内容 append中文 内容 之后。 后面想到,邮件查看时是静态html页面,其代表 换行 的是标签<br>,于是将"\r\n"换成"<br>",达到了 换行 要求。 如果邮件 内容 位自己编辑的在需要 换行 的后面拼接上<br/>或者<br>就OK,/n/t是不会起作用的 如果邮件 内容 是编辑器获取的,可以使用nl2br()函数,在 换行 位置加入<br/> There are two limits that this specification places on the number ofcharacters in a line. Each line of characters MUST be no more than998 characters, and SHOULD be no more than 78 characters, excludin...