如何在PHP中从LocalHost发送电子邮件

localhost用作开发服务器以开发Web应用程序。
在将其移动到生产服务器之前,在localhost上测试了Web应用程序的所有功能。
但是,当需要在localhost服务器上测试电子邮件功能时出现问题。
通常,电子邮件发送功能无法使用localhost中的内置函数。

如果使用PHP构建Web应用程序,则mail()函数用于使用PHP从脚本发送电子邮件。

但PHP Mail()函数在localhost不起作用。
在本教程中,我们将展示如何在PHP中从LocalHost发送电子邮件。
使用此示例脚本,我们可以使用PHP从任何Localhost服务器(XAMPP,WAMP或者任何其他人)发送电子邮件。

我们将使用phpmailer使用php从localhost发送电子邮件。

PHPMailer库提供了使用PHP与SMTP服务器从LocalHost发送电子邮件的最简单方法。
不仅是文本电子邮件,还可以使用PHPMailer在PHP中从LocalHost中发送HTML电子邮件。

我们可以使用Gmail帐户作为SMTP服务器,以从localhost发送电子邮件。
在使用Gmail SMTP服务器之前,我们需要在Google帐户中配置以下设置。

  • 登录Google帐户并转到安全页面。
  • 向下滚动到较少的安全应用程序访问部分。打开较少的安全应用程序访问权限。

使用PHP从LocalHost发送电子邮件

以下代码片段将使用PHPMailer从LocalHost发送HTML电子邮件。

  • 包括PHPMailer库并创建此类的实例。
  • 设置SMTP凭据(主机,用户名,密码和端口)。
  • 指定发件人姓名和电子邮件('$mail-> setfrom')。
  • 设置收件人电子邮件地址('$mail-> addaddress')。
  • 设置电子邮件主题('$mail->主题')。
  • 设置电子邮件的身体内容('$MAIL-> BODY')。
  • 使用phpmailer类的'send()'方法发送电子邮件。
<?php 

//Import PHPMailer classes into the global namespace 
use PHPMailer\PHPMailer\PHPMailer; 
use PHPMailer\PHPMailer\Exception; 

require 'PHPMailer/Exception.php'; 
require 'PHPMailer/PHPMailer.php'; 
require 'PHPMailer/SMTP.php'; 

$mail = new PHPMailer; 

$mail->isSMTP();                      //Set mailer to use SMTP 
$mail->Host = 'smtp.gmail.com';       //Specify main and backup SMTP servers 
$mail->SMTPAuth = true;               //Enable SMTP authentication 
$mail->Username = 'user@gmail.com';   //SMTP username 
$mail->Password = 'gmail_password';   //SMTP password 
$mail->SMTPSecure = 'tls';            //Enable TLS encryption, `ssl` also accepted 
$mail->Port = 587;                    //TCP port to connect to 

//Sender info 
$mail->setFrom('sender@onitroad.com', 'onitroad'); 
$mail->addReplyTo('reply@onitroad.com', 'onitroad'); 

//Add a recipient 
$mail->addAddress('recipient@example.com'); 

//$mail->addCC('cc@example.com'); 
//$mail->addBCC('bcc@example.com'); 

//Set email format to HTML 
$mail->isHTML(true); 

//Mail subject 
$mail->Subject = 'Email from Localhost by onitroad'; 

//Mail body content 
$bodyContent = '<h1>How to Send Email from Localhost using PHP by onitroad</h1>'; 
$bodyContent .= '<p>This HTML email is sent from the localhost server using PHP by onitroad</p>'; 
$mail->Body    = $bodyContent; 

//Send email 
if(!$mail->send()) { 
    echo 'Message could not be sent. Mailer Error: '.$mail->ErrorInfo; 
} else { 
    echo 'Message has been sent.'; 
} 

?>

请注意:如果要使用Gmail作为SMTP服务器,请将Google电子邮件地址设置为SMTP用户名和密码作为SMTP密码。

我们可以使用PHPMailer从LocalHost发送具有多个附件的电子邮件。

  • 将文件路径设置为addattachment()方法。
//Add attachments
$mail->addAttachment('/var/tmp/file.tar.gz');
$mail->addAttachment('/tmp/image.jpg', 'new.jpg'); //Optional name
日期:2020-06-02 22:15:31 来源:oir作者:oir