Home Backend Development PHP Tutorial How to configure phplist and phpmailer (used in combination) to send emails through gmail_php skills

How to configure phplist and phpmailer (used in combination) to send emails through gmail_php skills

May 16, 2016 pm 07:55 PM
gmail phpmailer send email

The example in this article describes the configuration method of phplist and phpmailer sending emails through gmail. Share it with everyone for your reference, the details are as follows:

Generally speaking, as long as you are not using a gmail mailbox, then using phplist to send emails only needs to be configured according to the previous "Detailed summary of the phplist configuration method of PHP mass mailing system". But if you are unlucky like me and have to use an email with SSL verification like gmail, then congratulations, my misfortune has now become your luck. After several days of trying, I finally successfully combined gmail and phplist. . I am sharing my experience here, hoping it will be useful to all comrades who are in the same situation as me. In addition, the core of phplist is phpmailer, and the solution I proposed mainly revolves around phpmailer, so those who need to use phpmailer to send emails through gmail but cannot succeed can also refer to my method.

First, follow the configuration method in "Detailed Summary of PHP Bulk Email System phplist Configuration Method" to send emails through gmail. When sending test emails, phplist will report a failure to send emails, and in the event log (eventlog) There will be an error message "Mailer Error: The following From address failed:...", saying that there is a problem with the sender address. Is it possible that the SMTP server has been connected, but there is a problem when sending emails? You can use a method to test whether you are connected to the SMTP server: I deliberately filled in the wrong email account password in the config.php file, but the same error was still reported when I sent the test email. It seems that I was not connected to the SMTP server at all. , the error report of this phplist is too...

If you know that it is not connected to the SMTP server, it means that the problem lies in the core of phplist sending emails - another famous open source software phpmailer.

I checked the information on phpmailer sending gmail emails online and found that people said that the old version of phpmailer did not support SSL verification and could not connect to gmail's SMTP server. This problem has been solved in the new version of phpmailer.

Open lists/admin/phpmailer/ChangeLog.txt and find that the latest version of phplist comes with phpmailer version 1.73, which was released in 2005. It is indeed not new. So I went to the official website of phpmailer and downloaded the latest 5.1.

I wanted to first study how the new version of phpmailer solves the problem of SSL verification, so I looked at some of the documentation that comes with it, and happened to find a use_gmail.txt under PHPMailer_v5.1/docs, which seemed to be The official pays more attention to the Gmail problem and has specially released a demo for people's reference. When you open it, it is indeed a complete php page file. Basically, you can use it by modifying the file extension, email username and password. However, if you only modify it like this, an error will be reported when accessing the test page. I don’t know the official demo. How can there be such an error? It actually calls an undefined function and has some unnecessary components. We just want to test whether the email can be sent normally, so I changed it to:

<&#63;php
    // example on using PHPMailer with GMAIL
    include("class.phpmailer.php");
    include("class.smtp.php"); // note, this is optional - gets called from main class if not already loaded
    $mail       = new PHPMailer();
    $body       = "test";
    $mail->IsSMTP();
    $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
    $mail->Username  = "myname@gmail.com"; // GMAIL username
    $mail->Password  = "mypassword";      // GMAIL password
    $mail->From    = "myname@gmail.com";
    $mail->FromName  = "Webmaster";
    $mail->Subject  = "This is the subject";
    $mail->AltBody  = "This is the body when user views in plain text format"; //Text Body
    $mail->WordWrap  = 50; // set word wrap
    $mail->MsgHTML($body);
    $mail->AddReplyTo("myname@gmail.com","Webmaster");
    $mail->AddAddress("myname@gmail.com","First Last");
    $mail->IsHTML(true); // send as HTML
    if(!$mail->Send()) {
     echo "Mailer Error: " . $mail->ErrorInfo;
    } else {
     echo "Message has been sent";
    }
&#63;>

Copy after login

It turns out that when accessing this page, an error is still reported, which is really frustrating. Why can’t the official demo be run?

At this time, I suddenly remembered that there is a file named Note_for_SMTP_debugging.txt under PHPMailer_v5.1/docs. Now I am worried about not being able to connect to the SMTP server. I might as well take a look at the debugging methods provided in it.

When I opened the file and read the first line, my eyes lit up. This is exactly what I needed! In fact, the method of use is also very simple, just use

$mail->IsSMTP();

Copy after login

Insert before

$mail->SMTPDebug = 1;

Copy after login

You can get more detailed error information when reporting an error. What a good thing^_^

After modifying it like this, I got more detailed instructions when visiting the page - "SMTP -> ERROR: Failed to connect to server: Unable to find the socket transport "ssl" - did you forget to enable it when you configured PHP? (28593608)".

That’s it, so I opened my php configuration file (C://Windows/php.ini) and searched for ssl, and sure enough I found an extension about ssl

;extension=php_openssl.dll

Copy after login

它没有被打开。去掉其前面用于注释的“;”,然后重启服务器,再次访问测试页面use_gmail.php,仍然是同样的错误提示。

没办法了,我上网查了一下关于php以及apache的ssl配置的文章,发现仅仅是将ssl扩展模块开启是不够的,还要对openssl进行配置,在Windows环境下配置方法倒是很简单——找到php安装目录下的ssleay32.dll和libeay32.dll,将这二者复制到windows下的system32目录中即可(在php.ini中开启extension=php_openssl.dll还是必要的)。当然,不想“污染”system32目录的同志们可以用修改环境变量的方法,只要让ssleay32.dll和libeay32.dll在系统路径下就可以了。(如果你使用的不是winidows操作系统,请上网查找针对你的操作系统的配置ssl的方法,应该不难找到)

这回再访问use_gmail.php发现可以成功发送了!

在此基础上,我们的phplist的问题也可以解决了:用新版phpmailer中的class.phpmailer.php和class.smtp.php覆盖lists/admin/phpmailer中的对应文件,然后修改lists/admin/class.phplistmailer.php中36行左右处的

$this->SMTPAuth = true;
$this->Helo = getConfig("website");
$this->Host = PHPMAILERHOST;

Copy after login

为:

$this->IsSMTP();            # Add
$this->SMTPAuth = true;
$this->SMTPSecure = "ssl";       # Add
$this->Helo = getConfig("website");
$this->Host = PHPMAILERHOST;
$this->Port = 465            # Add

Copy after login

其中phpmailer默认端口号为25,是大多数smtp服务器的端口号,但是gmail使用的端口号是465,所以要重新设置。

更多关于PHP相关内容感兴趣的读者可查看本站专题:《PHP网络编程技巧总结》、《PHP基本语法入门教程》、《php操作office文档技巧总结(包括word,excel,access,ppt)》、《php日期与时间用法总结》、《php面向对象程序设计入门教程》、《php字符串(string)用法总结》、《php+mysql数据库操作入门教程》及《php常见数据库操作技巧汇总

希望本文所述对大家PHP程序设计有所帮助。

Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

Video Face Swap

Video Face Swap

Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Tools

Notepad++7.3.1

Notepad++7.3.1

Easy-to-use and free code editor

SublimeText3 Chinese version

SublimeText3 Chinese version

Chinese version, very easy to use

Zend Studio 13.0.1

Zend Studio 13.0.1

Powerful PHP integrated development environment

Dreamweaver CS6

Dreamweaver CS6

Visual web development tools

SublimeText3 Mac version

SublimeText3 Mac version

God-level code editing software (SublimeText3)

How to add a hyperlink to text or image in Gmail How to add a hyperlink to text or image in Gmail May 06, 2023 pm 06:07 PM

No matter how many instant messaging apps have come and gone, email always has a completely different feel to it. Mailing is truly synonymous with Gmail. Not to mention a professional front desk, Gmail is unavoidable, just unavoidable! Since Gmail is used so frequently, no matter what, you have to know how to make your Gmail experience the smoothest and most efficient. You will most likely need to add a lot of web links in the body of your email, and it will definitely look unwieldy if you have so many links. But links are definitely necessary, even if long links will definitely make your email look ugly. So is there a way out? What about hyperlinks? How do you hide a link in text or an image? Sound cool? Oh yes, Gmail is

How to remove Boomerang from Gmail on PC or mobile How to remove Boomerang from Gmail on PC or mobile Apr 14, 2023 pm 10:46 PM

How to Remove Boomerang from Gmail Find below our step-by-step guide to remove Boomerang from your Gmail account on your PC or mobile phone. To remove Boomerang from Gmail on PC, open Google Chrome browser on your computer. In Google Chrome, click the three-dot icon in the upper right corner of the screen. Select More Tools from the drop-down menu. Click Extensions from the next drop-down menu. On the Extensions screen, look for

PHP methods and steps for sending emails to multiple people using PHPMailer PHP methods and steps for sending emails to multiple people using PHPMailer May 22, 2023 pm 06:10 PM

In web applications, it is often necessary to send emails to multiple recipients at once. PHP is a very popular web development language, and PHPMailer is a common PHP class library for sending emails. PHPMailer provides a rich interface, making sending emails in PHP applications more convenient and easy to use. In this article, we will introduce the methods and steps on how to use PHPMailer to send emails to multiple recipients. To download PHPMailer, you first need to go to the official website (

How to remove autocomplete email addresses in Gmail How to remove autocomplete email addresses in Gmail Apr 21, 2023 am 10:46 AM

Gmail is the most popular web-based email server from Google, and it comes with many powerful features that are helpful when browsing, editing, and sending emails. One such feature is the autocomplete list, which allows users to view a list of email addresses saved as contacts before finishing entering the full address. This feature is really useful but sometimes it may not be a good approach as there may be some email addresses that are no longer valid or may have been deleted by the user. For example, someone who leaves an organization no longer has access to a company email address. But there is a way to remove those email addresses that are highlighted in Gmail's autocomplete list. If you also want to remove emails from Gmail autocomplete list

PHP development practice: Use PHPMailer to send emails to users in the MySQL database PHP development practice: Use PHPMailer to send emails to users in the MySQL database Aug 05, 2023 pm 06:21 PM

PHP development practice: Use PHPMailer to send emails to users in the MySQL database Introduction: In the construction of the modern Internet, email is an important communication tool. Whether it is user registration, password reset, or order confirmation in e-commerce, sending emails is an essential function. This article will introduce how to use PHPMailer to send emails and save the email information to the user information table in the MySQL database. 1. Install the PHPMailer library PHPMailer is

Google Gemini now in the Gmail app: Smart email search via AI on Android devices Google Gemini now in the Gmail app: Smart email search via AI on Android devices Aug 31, 2024 am 09:54 AM

Google is expanding its Gmail app at Android with an AI-powered Q&A function which was already available in the web version of Gmail and is powered by Google's Gemini AI assistant. Users can now search their inbox more efficiently by asking speci

How to set Gmail to delete instead of archive in the Mail app on iPhone and iPad How to set Gmail to delete instead of archive in the Mail app on iPhone and iPad Apr 13, 2023 pm 02:34 PM

Have you noticed that when you try to delete a message in Gmail on iOS, you only see the archive option? Read on to learn how to delete Gmail on iPhone without archiving it in the Mail app. The setting to change the default option for archiving Gmail emails using the Mail app on iPhone and iPad is completely hidden in Settings, but it can be changed quickly once you know where to go. Keep in mind that this tutorial is for people using Gmail through the Apple Mail app on iPhone and iPad. Another option is to use the Gmail app on your iPhone/iPad. you even

How to send HTML mail with embedded images using PHP and PHPMAILER? How to send HTML mail with embedded images using PHP and PHPMAILER? Jul 22, 2023 am 11:29 AM

How to send HTML mail with embedded images using PHP and PHPMAILER? HTML email is a richer and more personalized form of email that can insert pictures, links and styles into the email. Embedded images refer to sending images directly as part of the email in the HTML email instead of sending them as attachments. In PHP, we can use PHPMAILER to send HTML emails with embedded images. PHPMAILER is a powerful PHP email sending library

See all articles