Rumah  >  Artikel  >  pembangunan bahagian belakang  >  PHP如何实现SMTP邮件的发送(代码)

PHP如何实现SMTP邮件的发送(代码)

不言
不言asal
2018-09-26 15:46:333261semak imbas

本篇文章给大家带来的内容是关于PHP如何实现SMTP邮件的发送(代码),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。

<?php

/**
 * @param $address mixed 收件人  多个收件人/或需要设置收件人昵称时为数组 array($address1,$address1)/array(array(&#39;address&#39;=>$address1,&#39;nickname&#39;=>$nickname1),array(&#39;address&#39;=>$address2,&#39;nickname&#39;=>$nickname2))
 * @param $subject string 邮件主题
 * @param $body    string 邮件内容
 * @param  $file   string 附件
 * @return bool|string   发送成功返回true 反之返回报错信息
 * @throws Exception
 */
function send_mail_by_smtp($address, $subject, $body, $file = &#39;&#39;)
{
  require(&#39;./PHPMailer-master/Exception.php&#39;);
  require(&#39;./PHPMailer-master/PHPMailer.php&#39;);
  require(&#39;./PHPMailer-master/SMTP.php&#39;);

  //date_default_timezone_set("Asia/Shanghai");//设定时区东八区

  $mail = new PHPMailer();

  //Server settings
  $mail->SMTPDebug = 2;
  $mail->isSMTP();                                      // 使用SMTP方式发送
  $mail->Host = &#39;smtp.126.com&#39;;                         // SMTP邮箱域名
  $mail->SMTPAuth = true;                               // 启用SMTP验证功能
  $mail->Username = "*****@126.com";                    // 邮箱用户名(完整email地址)
  $mail->Password = "*****";                            // smtp授权码,非邮箱登录密码
  $mail->Port = 25;
  $mail->CharSet = "utf-8";                             //设置字符集编码 "GB2312"

  // 设置发件人信息,显示为  你看我那里像好人(xxxx@126.com)
  $mail->setFrom($mail->Username, &#39;你看我那里像好人&#39;);

  //设置收件人 参数1为收件人邮箱 参数2为该收件人设置的昵称  添加多个收件人 多次调用即可
  //$mail->addAddress(&#39;********@163.com&#39;, &#39;你看我那里像好人&#39;);

  if (is_array($address)) {
    foreach ($address as $item) {
      if (is_array($item)) {
        $mail->addAddress($item[&#39;address&#39;], $item[&#39;nickname&#39;]);
      } else {
        $mail->addAddress($item);
      }
    }
  } else {
    $mail->addAddress($address, &#39;adsf&#39;);
  }


  //设置回复人 参数1为回复人邮箱 参数2为该回复人设置的昵称
  //$mail->addReplyTo(&#39;*****@126.com&#39;, &#39;Information&#39;);

  if ($file !== &#39;&#39;) $mail->AddAttachment($file); // 添加附件

  $mail->isHTML(true);    //邮件正文是否为html编码 true或false
  $mail->Subject = $subject;     //邮件主题
  $mail->Body = $body;           //邮件正文 若isHTML设置成了true,则可以是完整的html字符串 如:使用file_get_contents函数读取的html文件
  //$mail->AltBody = &#39;This is the body in plain text for non-HTML mail clients&#39;;  //附加信息,可以省略

  return $mail->Send() ? true : &#39;ErrorInfo:&#39; . $mail->ErrorInfo;
}

$path = &#39;.\wpic907.jpg&#39;;
$ret = send_mail_by_smtp(&#39;*******@163.com&#39;, &#39;PHPMailer邮件标题&#39;, &#39;PHPMailer邮件内容&#39;, $path);

Atas ialah kandungan terperinci PHP如何实现SMTP邮件的发送(代码). Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn