使用PHP函数来发送电子邮件
PHP是一种脚本语言,常用于创建动态网站。除了网站开发,PHP还可以用来发送电子邮件。当你需要通过网站向用户发送邮件时,PHP的邮件功能就派上用场了。
PHP提供了几个函数来发送电子邮件。在本文中,我们将介绍使用PHP邮件函数来发送电子邮件。
PHP邮件函数
PHP提供了mail()函数来发送电子邮件。mail()函数需要以下参数:
mail(to, subject, message, headers, parameters);
其中:
to :电子邮件目标地址,接收电子邮件的人的邮件地址,可以包括一个或多个电子邮件地址,多个邮件地址用逗号分隔。
subject :电子邮件的主题。
message:电子邮件的正文,可以包含HTML标记。
headers:可选的邮件头,可以设置电子邮件的附加信息。
parameters:可选的参数,可以影响邮件传送的行为。
以下是通过PHP mail()函数发送电子邮件的示例代码:
$to_email = "john@example.com";
$subject = "Test email using PHP";
$message = "This is a test email sent by PHP";
$headers = "From: sender@example.com";
//send email
mail($to_email, $subject, $message, $headers);
以上代码将发送一个文本消息到“john@example.com”,邮件的主题是“Test email using PHP”,发送者是“sender@example.com”。
在PHP中使用SMTP邮件服务器
PHP mail()函数通过本地邮件服务器来发送电子邮件。通常,这种方式并不适合实际应用程序,因为邮件可能会被接收方的SPAM过滤器拦截。在这种情况下,使用SMTP邮件服务器可能更加可靠。
使用SMTP邮件服务器需要在PHP中设置SMTP服务器的参数。PHP提供了SMTP和auth相关的INI指令来设置SMTP服务器参数。具体步骤如下:
1.打开php.ini文件并找到以下指令文本区
[mail function]
; For Win32 only.
;SMTP = localhost
smtp_port = 25
; For Win32 only.
;sendmail_from = me@example.com
; For Unix only. You may supply arguments as well (default: "sendmail -t -i").
;sendmail_path =
2.在“[mail function]”的下面添加以下代码,指定SMTP服务器参数
SMTP = smtp.server.com
smtp_port = 25
sendmail_from = sender@example.com
auth_username = username
auth_password = password
以上代码指定了SMTP服务器的地址“smtp.server.com”,SMTP服务器端口号为“25”,发送者电子邮件地址为“sender@example.com”。
当你需要使用SMTP服务器发送电子邮件时,可以使用PHPMailer类。PHPMailer类支持使用SMTP服务器通过PHP发送电子邮件,代码如下:
require_once '/path/to/PHPMailerAutoload.php';
$mail = new PHPMailer;
// Enable verbose debug output
$mail->SMTPDebug = 3;
// Set the hostname of the mail server
$mail->Host = 'smtp.server.com';
// use
$mail->Port = 587; // This is the SMTP port used by Gmail
// Set the encryption system to use - ssl (deprecated) or tls
// Don't set smtpsecure, it may automatically be set if needs be in class.smtp.php
$mail->SMTPSecure = 'tls';
// Whether to use SMTP authentication
$mail->SMTPAuth = true;
// Username to use for SMTP authentication
$mail->Username = 'username';
// Password to use for SMTP authentication
$mail->Password = 'password';
// Set who the message is to be sent from
$mail->setFrom('sender@example.com', 'Sender');
// Set an alternative reply-to address
$mail->addReplyTo('reply@example.com', 'First Last');
// Set who the message is to be sent to
$mail->addAddress('recipient@example.com', 'Recipient');
// Set the subject line
$mail->Subject = 'PHPMailer SMTP test';
// Read an HTML message body from an external file, convert referenced images to embedded,
$mail->msgHTML(file_get_contents('message.html'), dirname(__FILE__));
// Optionally add attachments
$mail->addAttachment('reference.jpg');
//send the message, check for errors
if (!$mail->send()) {
echo "Mailer Error: " . $mail->ErrorInfo;
} else {
echo "Message sent!";
}
以上是使用PHPMailer类发送邮件的示例代码。PHPMailer类提供了完整的SMTP邮件发送功能,使得通过PHP应用程序发送邮件变得更加简单和可靠。
结论
PHP提供了mail()函数和PHPMailer类来发送电子邮件。当需要使用SMTP邮件服务器时,PHPMailer类提供的SMTP邮件发送功能更为强大和可靠。使用PHP自带的邮件函数是一个简单的方法,但若你想让你的邮件变得更加可靠,使用SMTP邮件服务器是必要的。
