Home >Backend Development >PHP Tutorial >PHP mail() function implements method of sending mail_PHP tutorial
Most website developers have started using
A script that sends E-MAIL is probably one of the most common scripts you can find on a Web site. Although it is very simple, an email script can sometimes make programmers very frustrated. There is a function called PHP mail() in PHP. It only needs to know the recipient's address and the body of the letter to send the email, but it requires mail( ) works the way you want you still need to solve some tricky problems.
For the PHP mail() function to work, you must have an SMTP server so that PHP can connect to it. No matter how important the server is to the mail program Importantly, most people don't have the slightest idea how it works. In this tutorial, we'll reveal the secrets of SMTP and solve some common problems with sending emails using PHP. Other topics in this article will include looping through a list of addresses. method and a method of sending an email to the recipient in both text and HTML formats at the same time.
SMTP is the abbreviation of Simple Mail Transfer Protocol (Simple Mail Transfer Protocol), and an SMTP server is a server that runs this protocol A computer that sends mail. Running this protocol actually refers to running programs such as Sendmail and Qmail - if you are using a non-Windows computer. On Windows platforms, as part of the Windows NT Service Pack or included The SMTP service program built into Windows 2000 is a typical example of this kind of program.
I am not saying that there are only those SMTP software packages, but they are the most common ones. If your website uses an Internet service provider If you are part of the Internet Service Provider's virtual hosting package, the SMTP service program should already be installed on this computer. If you are the system administrator of a computer located at an ISP or indoors, then you It is very likely that some kind of SMTP software has been installed on this computer to handle the process of sending emails from the web server.
However, if you are an individual user and only have a development web service program Running on your PC, you probably don't have SMTP software running on your machine. Here's a very simple but accurate rule of thumb: If you are a Windows user and have never seen the words SMTP server, then you are This program is not running. If you do not have one, then you have two options: install, configure, and maintain an SMTP server program (this method is not recommended if you don't know what it is about) or Use an existing SMTP server.
"How can I use a server if it's not running right now?" you may ask. If your computer is connected via dial-up (or DSL or cable) To connect to the Internet, you can use your ISP's outgoing mail server. For example, if your development computer is a Windows 98 system and uses a 56kbps modem to connect to the Internet via EarthLink, then you can use mail.earthlink.net as Your SMTP server. No matter what email client you use with your outgoing mail server (Eudora, Outlook, Netscape Mail, etc.), they will all be the same process as your PHP code using your SMTP server. Tips It is to let PHP know a few facts.
In the php.ini management configuration file, there are several entries that need to be set so that the PHP mail() function can run properly. Before changing them, make sure they are What it is used for. You can use the phpinfo() function to display the current configuration of the system by creating a file. This file includes:
phpinfo() ?>
Save For this file, place it in the file root directory of your web server and access it through your browser. You should see a nicely formatted message showing your configuration. You will want to view The entries are as follows:
SMTP
sendmail_from
sendmail_path
If you are not using Windows, then the sendmail_path directive is the only thing you have to worry about. If you are using Windows, you Take a look at the last two commands.
If you are using Linux or a Unix variant, sendmail_path should look like this:
sendmail_path = /usr/sbin/sendmail
Or if you use Qmail:
sendmail_path = /var/qmail/bin/sendmail
In this instruction in the PHP mail() function, you can also set configuration parameters to specify queue buffering options or explicitly set the Return-Path header, as follows:
sendmail_path = /usr/sbin/sendmail -t -fyou@yourdomain.com
As a non- Windows users, that's all you have to do. If you're using Windows, you have more to do. You also need to take a look at the SMTP and sendmail_from values. Don't be confused by the sendmail in the name of the sendmail_from command. . Although you are not using a program named Sendmail on Windows, that is just the name of the command. Don't let it scare you.
In the results displayed by your phpinfo(), look at SMTP and sendmail_from The default values - they are either blank or contain random values. You should change them to meaningful values.
If you are determined to run an SMTP server program on this computer, you The entry in the php.ini file should be as follows:
SMTP = localhost
However, if you want to use the outgoing mail server of your ISP (EarthLink in this case), then The email in php.ini should look like this:
SMTP = mail.earthlink.net
You can also use the IP address instead of the domain name, because the computer does not distinguish between the two entries.
The second configuration directive is sendmail_from, which Should be set to the email address in the From header. It can be changed in the script but is usually used as the default. Here is an example of this configuration directive youraddress@yourdomain.com refers to your own email address.
sendmail_from = youraddress@yourdomain.com
After making these configuration changes in the PHP mail() function, restart the web service program and use the phpinfo() function to verify these changes. After these work Once completed, you can use PHP to send emails.