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...