大家在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> <?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!"; } ?> </body> </html>
以上就是本文的全部内容,希望对大家的学习有所帮助。

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

如何使用PHP和PHPMAILER发送带有内嵌图片的HTML邮件?HTML邮件是一种更加丰富和个性化的邮件形式,可以在邮件中插入图片、链接和样式。而内嵌图片是指在HTML邮件中直接将图片作为邮件的一部分发送,而不是通过附件方式发送。在PHP中,我们可以借助PHPMAILER来发送带有内嵌图片的HTML邮件。PHPMAILER是一个功能强大的PHP邮件发送类库

PHP和PHPMAILER:如何实现邮件发送的防垃圾邮件功能?引言:在互联网时代,电子邮件已经成为了我们日常生活和工作中不可或缺的一部分。然而,随着电子邮件的普及和使用,垃圾邮件问题日益严重,给用户带来了诸多困扰。为了解决这个问题,本文将介绍如何利用PHP和PHPMailer库实现邮件发送的防垃圾邮件功能。一、了解垃圾邮件垃圾邮件(Spam),指的是那些未经

掌握PHP和PHPMAILER:如何实现邮件发送的自动回复功能?在现代社会中,电子邮件成为了人们日常沟通的重要方式之一。许多网站或者企业都需要通过邮件与用户进行沟通和交流,并且自动回复邮件变得非常重要。本文将介绍如何使用PHP和PHPMailer库实现邮件发送的自动回复功能。第一步:获取用户的邮件信息首先,我们需要获取用户的邮件信息。在网站或者应用程序中,用

PHP使用PHPMailer库发送附件邮件的方法和注意事项邮件在现代生活中已经成为了非常重要的一种通信方式。在很多开发项目中,我们需要使用代码自动发送邮件,这时候PHPMailer库就是我们的不二之选。PHPMailer是一个专门用于PHP发送邮件的库。它可以方便地发送邮件,包括HTML格式的邮件和附件。本文将着重介绍PHPMailer库中如何发送带附件的邮

如何使用PHP和PHPMailer发送带有图片的HTML邮件?邮件在现代通信中扮演着重要的角色,但是发送带有图片的HTML邮件可能会让一些PHP开发者感到困惑。在本文中,我们将介绍如何使用PHP和PHPMailer来发送带有图片的HTML邮件。我们将提供代码示例来帮助您更好地理解如何实现这一目标。首先,我们需要确保PHPMailer库已经安装在我们的项目中

如何使用PHP和PHPMailer发送HTML格式的邮件?随着互联网的发展,电子邮件已经成为人们日常沟通的重要工具。在开发网站和应用程序时,我们常常需要使用PHP和PHPMailer来发送邮件。本文将为您介绍如何使用PHP和PHPMailer发送HTML格式的邮件,并提供相应的代码示例。第一步:准备工作在开始之前,您需要确保已经安装了PHP和PHPMaile

CakePHP是一个基于MVC模式的PHP开源框架,旨在为开发者提供高效、可扩展、易于维护的Web应用程序开发环境。其中,邮件功能一直是Web应用程序的重要组成部分之一。为了方便开发者使用邮件功能,在CakePHP中已经封装了PHPMailer类库。PHPMailer是一款常用的邮件发送类库,支持发送HTML邮件、附件、抄送、邮件队列和SMTP验证等功能。本


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

VSCode Windows 64位元 下載
微軟推出的免費、功能強大的一款IDE編輯器

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

MantisBT
Mantis是一個易於部署的基於Web的缺陷追蹤工具,用於幫助產品缺陷追蹤。它需要PHP、MySQL和一個Web伺服器。請查看我們的演示和託管服務。

記事本++7.3.1
好用且免費的程式碼編輯器

SAP NetWeaver Server Adapter for Eclipse
將Eclipse與SAP NetWeaver應用伺服器整合。