php 使用身份验证的SMTP发送电子邮件

作者:袖梨 2022-07-02

这个例子说明如何发送电子邮件使用SMTP身份验证。此特定示例使用Gmail发送。为通过SMTP发送如需Gmail要求的SMTP TLS身份验证。幸运的是,当我们使用梨邮件认证,连接自动TLS的。

这个例子之间的区别,只是在前面的示例使用SMTP是增加以下SMTP参数。

$smtp_params["auth"]     = true;
$smtp_params["username"] = "[email protected]";
$smtp_params["password"] = "pass";
        include('Mail.php');
        include('Mail/mime.php');
 
        // Constructing the email
        $sender = "[email protected]";                                             // Your email address
        $recipient = "Leigh .net>";                               // The Recipients name and email address
        $subject = "Test Email";                                                // Subject for the email
        $text = 'This is a text message.';                                      // Text version of the email
        $html = '

This is a html message

';      // HTML version of the email
        $crlf = "n";
        $headers = array(
                        'From'          => $sender,
                        'Return-Path'   => $sender,
                        'Subject'       => $subject
                        );
 
        // Creating the Mime message
        $mime = new Mail_mime($crlf);
 
        // Setting the body of the email
        $mime->setTXTBody($text);
        $mime->setHTMLBody($html);
 
        // Add an attachment
        $file = "Hello World!";
        $file_name = "Hello text.txt";
        $content_type = "text/plain";
        $mime->addAttachment ($file, $content_type, $file_name, 0);
 
        // Set body and headers ready for base mail class
        $body = $mime->get();
        $headers = $mime->headers($headers);
 
        // SMTP authentication params
        $smtp_params["host"]     = "smtp.gmail.com";
        $smtp_params["port"]     = "25";
        $smtp_params["auth"]     = true;
        $smtp_params["username"] = "[email protected]";
        $smtp_params["password"] = "pass";
 
        // Sending the email using smtp
        $mail =& Mail::factory("smtp", $smtp_params);
        $result = $mail->send($recipient, $headers, $body);
        if($result === 1)
        {
          echo("Your message has been sent!");
        }
        else
        {
          echo("Your message was not sent: " . $result);
        }
?>

相关文章

精彩推荐