首页 后端开发 php教程 汇总PHPmailer群发Gmail的常见问题_PHP

汇总PHPmailer群发Gmail的常见问题_PHP

May 27, 2016 am 10:35 AM
gmail phpmailer 群发

大家在PHPmailer群发Gmail时会遇到许多常见问题,下面为大家总结了一些常见问题,希望对大家的学习有所帮助。

1.Could not authenticate

首先,如果你没有使用循环的话,基本上就是账号或者密码错了;

如果使用循环来群发,send()方法结束之后记得调用Smtpclose(),发一次关一次,否则就会出现只能发一封邮件,第二次就崩溃的情况。

2.Gmail

首先,开启php的ssl权限

php开启openssl的方法,大多数情况下openssl是没有开启的,要想启用需要进行下简单的设置:

windows下开启方法:

1: 首先检查php.ini中;extension=php_openssl.dll是否存在, 如果存在的话去掉前面的注释符‘;', 如果不存在这行,那么添加extension=php_openssl.dll。

2: 讲php文件夹下的: php_openssl.dll, ssleay32.dll, libeay32.dll 3个文件拷贝到 WINDOWS\system32\  文件夹下。

3: 重启apache或者iis

至此,openssl功能就开启了。

Linux下开启方法:

我使用的是锦尚数据的云主机,PHP版本:5.2.14

下面方案就以我的主机为例讲解为PHP添加openssl模块支持。

网上一些答案说要重新编译PHP,添加configure参数,增加openssl的支持。这里讲一个不需要重新编译的方法。

如果服务器上存在PHP安装包文件最好,如果已经删除,去下载和phpinfo页面显示版本一样的PHP安装文件,我这里是 php-5.2.14.tar.gz

推荐去搜狐镜像下载,网易镜像没有找到。地址为: http://mirrors.sohu.com/php/

用ssh工具连接到主机。

# 下载到/var/www/php5目录下

cd /var/www/php5

wget http://mirrors.sohu.com/php/php-5.2.14.tar.gz

# 解压

tar zxvf php-5.2.14.tar.gz

# 进入PHP的openssl扩展模块目录

cd php-5.2.14/ext/openssl/

/var/www/php5/bin/phpize # 这里为你自己的phpize路径,如果找不到,使用whereis phpize查找

# 执行后,发现错误 无法找到config.m4 ,config0.m4就是config.m4。直接重命名

mv config0.m4 config.m4

/var/www/php5/bin/phpize

./configure --with-openssl --with-php-config=/var/www/php5/bin/php-config

make

make install

# 安装完成后,会返回一个.so文件(openssl.so)的目录。在此目录下把openssl.so 文件拷贝到你在php.ini 中指定的 extension_dir 下(在php.ini文件中查找:extension_dir =),我这里的目录是 var/www/php5/lib/php/extensions

# 编辑php.ini文件,在文件最后添加

extension=openssl.so

# 重启Apache即可

/usr/local/apache2/bin/apachectl restart

登录后复制

好了,现在就成功添加openssl支持。

但是,Gmail麻烦的地方可不止这样,Gmail现在的smtp和pop3都是ssl加密的

Step1. php openssl module(extension) support
Step2. download phpmailer library
Step3. change code 'class.phpmailer.php' and 'class.smtp.php'

1.phpmailer和smtp里加property Is_SSL

public $Is_SSL = false;
登录后复制

2.phpmailer里的SmtpConnect方法里传递给smtp对象

$this->smtp-> Is_SSL = $this-> Is_SSL ;
登录后复制

3.smtp里的Connect方法在fsockopen调用前加上

if($this->is_ssl){ $host = 'ssl://'.$host; }
登录后复制

最后是使用方法,记得调用phpmailer类哦,代码里没有。

$mail = new PHPMailer();
$mail->IsSMTP();
$mail->Host = 'smtp.gmail.com'; // 您的企业邮局域名
$mail->SMTPAuth = true; // turn on SMTP authentication
$mail->SMTPSecure = "tls";
$mail->Username = '***@gmail.com';
$mail->Password = '******';
$mail->From = '***';
$mail->FromName = '***';
$mail->CharSet = 'UTF-8';
$mail->Encoding = "base64";
$mail->IsHTML(true); // send as HTML
$mail->Subject = '***'; //邮件标题
$mail->Body = '***'; //邮件内容
$mail->AltBody = "text/html";
$mail->AddAddress('***', "");
$mail->Is_SSL = true;
$mail->Port = 587;
if (!$mail->Send()) {
  exit($mail->ErrorInfo);
}
$mail->Smtpclose();
unset($mail);
登录后复制

代码部分就这些,还有不要忘记在gmail中做好相应的设置哦。

以上三步完成,就可以自由的用phpmailer来发送gmail邮件了。

再为大家分享一个phpmailer发送gmail邮件实例:

<html>
<head>
<title>PHPMailer - SMTP (Gmail) basic test</title>
</head>
<body>
<&#63;php
//error_reporting(E_ALL);
error_reporting(E_STRICT);
date_default_timezone_set('America/Toronto');
require_once('../class.phpmailer.php');
//include("class.smtp.php"); // optional, gets called from within class.phpmailer.php if not already loaded
$mail = new PHPMailer();
$body = file_get_contents('contents.html');
$body = eregi_replace("[\]",'',$body);
$mail->IsSMTP(); // telling the class to use SMTP
$mail->Host = "mail.gmail.com"; // SMTP server
$mail->SMTPDebug = 2; // enables SMTP debug information (for testing)
// 1 = errors and messages
// 2 = messages only
$mail->SMTPAuth = true; // enable SMTP authentication
$mail->SMTPSecure = "ssl"; // sets the prefix to the servier
$mail->Host = "smtp.gmail.com"; // sets GMAIL as the SMTP server
$mail->Port = 465; // set the SMTP port for the GMAIL server
$mail->Username = "***@gmail.com"; // GMAIL username
$mail->Password = "***"; // GMAIL password
$mail->SetFrom('****@gmail.com', 'First Last');
$mail->AddReplyTo("***@gmail.com","First Last");
$mail->Subject = "PHPMailer Test Subject via smtp (Gmail), basic";
$mail->AltBody = "To view the message, please use an HTML compatible email viewer!"; // optional, comment out and test
$mail->MsgHTML($body);
$address = "***@gmail.com";
$mail->AddAddress($address, "John Doe");
$mail->AddAttachment("images/phpmailer.gif"); // attachment
$mail->AddAttachment("images/phpmailer_mini.gif"); // attachment
if(!$mail->Send()) {
echo "Mailer Error: " . $mail->ErrorInfo;
} else {
echo "Message sent!";
}
&#63;>
</body>
</html> 

登录后复制

以上就是本文的全部内容,希望对大家的学习有所帮助。

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

Video Face Swap

Video Face Swap

使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

如何在 Gmail 中添加超链接至文本或图像 如何在 Gmail 中添加超链接至文本或图像 May 06, 2023 pm 06:07 PM

不管有多少即时消息应用程序来来去去,邮件总是给人一种完全不同的感觉。邮寄确实是Gmail的代名词。更别说专业的前台了,Gmail是避不开的,就是避不开!由于Gmail的使用如此频繁,因此无论什么事情,您都必须知道如何才能让您的Gmail体验最顺畅、最高效。您很可能需要在电子邮件正文中添加大量网络链接,如果您有这么多链接,它肯定会显得笨拙。但是链接确实是必要的,即使长链接肯定会让你的邮件看起来很丑。那么有出路吗?超链接怎么样?您如何将链接隐藏在文本或图像中?听起来很酷?哦,是的,Gmail非

微信怎么群发消息给所有人-微信群发消息教程 微信怎么群发消息给所有人-微信群发消息教程 Mar 18, 2024 am 10:58 AM

微信群发消息给所有人是一项非常方便的功能,可以帮助我们快速传递信息。若您需要给多个好友群发相同的内容(在不创建群的情况下),可以使用“群发助手”给各个好友群发消息。下面小编将详细介绍如何进行群发,一起来看看吧!1、打开微信,搜索【群发助手】功能。2、先启用微信群发助手,然后再点击【开始群发】3、点击【新建群发】进入选择收件人页面。4、在选择收件人页面中,可以通过手动勾选或全选的方式,选择想要发送消息的所有联系人。5、选择完联系人后,点击“下一步”按钮,进入消息编辑界面。6、在消息编辑界面中,可以

如何从 PC 或手机上的 Gmail 中删除 Boomerang 如何从 PC 或手机上的 Gmail 中删除 Boomerang Apr 14, 2023 pm 10:46 PM

如何从 Gmail 中删除 Boomerang在下面找到我们的分步指南,以从您的 PC 或手机上的 Gmail 帐户中删除 Boomerang。在电脑上要从 Gmail 中删除 Boomerang,请在您的计算机上打开 Google Chrome 浏览器。在谷歌浏览器中,点击屏幕右上角的  三点图标。从下拉菜单中选择更多工具。从下一个下拉菜单中单击扩展。在“扩展程序”屏幕上,找

PHP使用PHPMailer发送多人邮件的方法和步骤 PHP使用PHPMailer发送多人邮件的方法和步骤 May 22, 2023 pm 06:10 PM

在Web应用程序中,往往需要将邮件一次性发送给多个收件人。PHP是一种很流行的Web开发语言,而PHPMailer是一种常见的发送邮件的PHP类库。PHPMailer提供了丰富的接口,使得在PHP应用程序中发送邮件变得更加方便和易于使用。在本篇文章中,我们将介绍如何使用PHPMailer向多个收件人发送邮件的方法和步骤。下载PHPMailer首先需要在官网(

PHP开发实践:使用PHPMailer发送邮件到MySQL数据库中的用户 PHP开发实践:使用PHPMailer发送邮件到MySQL数据库中的用户 Aug 05, 2023 pm 06:21 PM

PHP开发实践:使用PHPMailer发送邮件到MySQL数据库中的用户引言:在现代互联网建设中,邮件是一种重要的沟通工具。无论是用户注册、密码重置,还是电子商务中的订单确认,发送电子邮件都是必不可少的功能。本文将介绍如何使用PHPMailer来发送电子邮件,并将邮件信息保存到MySQL数据库中的用户信息表中。一、安装PHPMailer库PHPMailer是

如何在 iPhone 和 iPad 上的邮件应用中将 Gmail 设置为删除而不是存档 如何在 iPhone 和 iPad 上的邮件应用中将 Gmail 设置为删除而不是存档 Apr 13, 2023 pm 02:34 PM

您是否注意到,当您尝试在 iOS 上删除 Gmail 中的邮件时,您只会看到存档选项?继续阅读以了解如何在 iPhone 上删除 Gmail,而不是在邮件应用中存档。更改使用iPhone 和 iPad上的邮件应用程序归档 Gmail 电子邮件的默认选项的设置完全隐藏在设置中,但一旦你知道去哪里,它就可以快速更改。请记住,本教程适用于通过 iPhone 和 iPad 上的 Apple 邮件应用程序使用 Gmail 的用户。另一种选择是在 iPhone/iPad 上使用 Gmail 应用程序。您甚至

如何在 Gmail 中删除自动完成的电子邮件地址 如何在 Gmail 中删除自动完成的电子邮件地址 Apr 21, 2023 am 10:46 AM

Gmail是Google推出的最流行的基于Web的电子邮件服务器,它具有许多在浏览、编辑和发送电子邮件时很有帮助的强大功能。其中一项功能是自动完成列表,它允许用户在完成输入完整地址之前查看保存为联系人的电子邮件地址列表。此功能确实很有用,但有时它可能不是很好的方法,因为可能有一些电子邮件地址不再有效或可能已被用户删除。例如,离开组织的人无法再访问公司电子邮件地址。但是有一种方法可以删除那些在Gmail的自动完成列表中突出显示的电子邮件地址。如果您还想从Gmail自动完成列表中删除电子邮件

Google Gemini 现已出现在 Gmail 应用中:在 Android 设备上通过 AI 进行智能电子邮件搜索 Google Gemini 现已出现在 Gmail 应用中:在 Android 设备上通过 AI 进行智能电子邮件搜索 Aug 31, 2024 am 09:54 AM

谷歌正在通过人工智能驱动的问答功能扩展其在 Android 上的 Gmail 应用程序,该功能已在 Gmail 网络版中提供,并由谷歌的 Gemini AI 助手提供支持。用户现在可以通过询问具体信息来更有效地搜索收件箱

See all articles