Home Backend Development PHP Tutorial PHP study notes 1: Who touched your mail(), PHP?_PHP Tutorial

PHP study notes 1: Who touched your mail(), PHP?_PHP Tutorial

Jul 13, 2016 pm 05:52 PM
mail php one of

When writing a function for sending emails in PHP, a very strange problem will occur, that is:
Warning: mail(): Failed to connect to mailserver at "localhost" port 25, verify your "SMTP" and "smtp_port" setting in php.ini or use ini_set() in .......
Of course, this red is not displayed on the web page, it is just for illustration, but you can set the displayed color. Well, this is left to you to consider.

I searched for relevant answers through the Internet, including related technical blogs, and everyone explained the solution very simply. Most of them just mentioned modifying the [mail function] function in php.ini to open the related functions of SMTP. That’s it, here are the detailed modifications:
[mail function]
SMTP = localhost
smtp_port = 25
sendmail_from = youremailUsual@domin.com
;It is necessary to note here that this email is from the From side.
sendmail_path = ""
;It is empty at first, and will be explained later.
mail_add_x_header = on
;This is on by default, no need to change

At this point, after the modification is completed, restart apache. Of course, I did this operation under CMD. Speaking of this operation, I also made a little joke. How stupid i am!

After restarting, refresh the page and the error still exists.

I'm stuck here. IIS (default server for Windows) was mentioned in stackoverflow. I can't find this item under Control Panel - Administrative Tools. Because it's win7, I turned it on under Add and Remove Programs. Yes, pay attention to the operation. You can find it under the management tool later. Double-click to open it. At this time, you are very excited to see the SMTP item. Double-click to open it and configure the relevant parameters, as shown in the screenshot:

Correction: I forgot to repost the picture here, so I apologize! Correction No. 7-5.

IIS


To be honest, this step was a bit stupid. The above are the options for ASP.net, don’t worry about PHP. [It didn’t work anyway].

After learning from the painful experience, I checked Wikipedia for a detailed explanation of the SMTP protocol. Click Here: Simple Mail Protocol
Come back and continue to modify, [mail function], as follows:
; Take the setting of 126 mailbox as an example
SMTP = smtp.126.com
smtp_port = 25
sendmail_from = my126EmailAddress@126.com
sendmail_path = ""
mail_add_x_header = on

At the same time, the value of the $from variable in the program was modified to maintain consistency.

[Because of the previous test, the phpinfo() function was added to the program. After execution, search for the mail item on the page, and you will find that there will be a Localhost Value and a master Value. Of course, this is easy to understand. The Localhost Value refers to the value in your program. The set value, master Value is the setting of php.ini]
After execution, the magical error disappeared, but the following error occurred:
mail(): SMTP server response: 553 You are not authorized to send mail, authentication is required aaf353e4-8ac5-416e-9cd5-6b54fc592764

Afterwards, I changed other email addresses, such as QQ, Gamil, etc., and the errors were as shown above. After reading a familiar word authorized, I understood what it meant.

It seems that we are not far from success at this step. I remember that when I used the client to configure mailbox users, the last step would ask you whether you need to turn on "server authentication". Finally, I accidentally found a file package called sendmail. Download it. The address is as follows: sendmail
After that, it is best to create a new folder in the root directory of PHP and name it: sendmail, then put the compressed package in it, unzip it, and modify a file called sendmail.ini. The modifications are as follows:

;take the fomus email provider in China 126 for example
[sendmail]
smtp_server= smtp.126.com
smtp_port=25
default_domin =126.com
auth_username= strings in your email address before char '@'
auth_password= your password which allow you to login in your email-box
hostname= 126.com

After that, you have to modify php.ini, still in the same place:
SMTP = smtp.126.com
;The same is true if it is changed to localhost here, and other options remain unchanged.
smtp_port = 25
sendmail_from = my126EmailAddress@126.com
sendmail_path = "your sendmail path/sendemail.exe -t "
;Of course the first half of this path must include the root directory of your PHP installation. Replace "" with "/", I think it is a must.
mail_add_x_header = on

Now that the configuration is complete, restart your apache, refresh the page, and the error will disappear, because the $to set in the program is your own 126 and QQ mailbox, and of course it will be sent cyclically.

When I saw the Sanfeng email prompt popping up on QQ in the lower right corner of the desktop, I know that I resolve it. The content of the opened email was exactly the same as what I entered on the page, and some of the content was read from the local database. .
PHP study notes 1: Who touched your mail(), PHP?_PHP Tutorial
Author: Tian Haoyu

www.bkjia.comtruehttp: //www.bkjia.com/PHPjc/478113.htmlTechArticleWhen writing a function for sending emails in PHP, a very strange problem will occur, that is: Warning: mail() : Failed to connect to mailserver at localhost port 25, verify your SMTP and smtp...
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

AI Hentai Generator

AI Hentai Generator

Generate AI Hentai for free.

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)

PHP 8.4 Installation and Upgrade guide for Ubuntu and Debian PHP 8.4 Installation and Upgrade guide for Ubuntu and Debian Dec 24, 2024 pm 04:42 PM

PHP 8.4 brings several new features, security improvements, and performance improvements with healthy amounts of feature deprecations and removals. This guide explains how to install PHP 8.4 or upgrade to PHP 8.4 on Ubuntu, Debian, or their derivati

How To Set Up Visual Studio Code (VS Code) for PHP Development How To Set Up Visual Studio Code (VS Code) for PHP Development Dec 20, 2024 am 11:31 AM

Visual Studio Code, also known as VS Code, is a free source code editor — or integrated development environment (IDE) — available for all major operating systems. With a large collection of extensions for many programming languages, VS Code can be c

7 PHP Functions I Regret I Didn't Know Before 7 PHP Functions I Regret I Didn't Know Before Nov 13, 2024 am 09:42 AM

If you are an experienced PHP developer, you might have the feeling that you’ve been there and done that already.You have developed a significant number of applications, debugged millions of lines of code, and tweaked a bunch of scripts to achieve op

How do you parse and process HTML/XML in PHP? How do you parse and process HTML/XML in PHP? Feb 07, 2025 am 11:57 AM

This tutorial demonstrates how to efficiently process XML documents using PHP. XML (eXtensible Markup Language) is a versatile text-based markup language designed for both human readability and machine parsing. It's commonly used for data storage an

Explain JSON Web Tokens (JWT) and their use case in PHP APIs. Explain JSON Web Tokens (JWT) and their use case in PHP APIs. Apr 05, 2025 am 12:04 AM

JWT is an open standard based on JSON, used to securely transmit information between parties, mainly for identity authentication and information exchange. 1. JWT consists of three parts: Header, Payload and Signature. 2. The working principle of JWT includes three steps: generating JWT, verifying JWT and parsing Payload. 3. When using JWT for authentication in PHP, JWT can be generated and verified, and user role and permission information can be included in advanced usage. 4. Common errors include signature verification failure, token expiration, and payload oversized. Debugging skills include using debugging tools and logging. 5. Performance optimization and best practices include using appropriate signature algorithms, setting validity periods reasonably,

PHP Program to Count Vowels in a String PHP Program to Count Vowels in a String Feb 07, 2025 pm 12:12 PM

A string is a sequence of characters, including letters, numbers, and symbols. This tutorial will learn how to calculate the number of vowels in a given string in PHP using different methods. The vowels in English are a, e, i, o, u, and they can be uppercase or lowercase. What is a vowel? Vowels are alphabetic characters that represent a specific pronunciation. There are five vowels in English, including uppercase and lowercase: a, e, i, o, u Example 1 Input: String = "Tutorialspoint" Output: 6 explain The vowels in the string "Tutorialspoint" are u, o, i, a, o, i. There are 6 yuan in total

Explain late static binding in PHP (static::). Explain late static binding in PHP (static::). Apr 03, 2025 am 12:04 AM

Static binding (static::) implements late static binding (LSB) in PHP, allowing calling classes to be referenced in static contexts rather than defining classes. 1) The parsing process is performed at runtime, 2) Look up the call class in the inheritance relationship, 3) It may bring performance overhead.

What are PHP magic methods (__construct, __destruct, __call, __get, __set, etc.) and provide use cases? What are PHP magic methods (__construct, __destruct, __call, __get, __set, etc.) and provide use cases? Apr 03, 2025 am 12:03 AM

What are the magic methods of PHP? PHP's magic methods include: 1.\_\_construct, used to initialize objects; 2.\_\_destruct, used to clean up resources; 3.\_\_call, handle non-existent method calls; 4.\_\_get, implement dynamic attribute access; 5.\_\_set, implement dynamic attribute settings. These methods are automatically called in certain situations, improving code flexibility and efficiency.

See all articles