Heim  >  Artikel  >  Backend-Entwicklung  >  Codebeispiel für PHP zur Implementierung des SMTP-E-Mail-Versands

Codebeispiel für PHP zur Implementierung des SMTP-E-Mail-Versands

不言
不言nach vorne
2018-11-17 17:04:163318Durchsuche

Wenn Sie immer noch damit zu kämpfen haben, dass die in PHP integrierte Funktion mail() keine E-Mails versenden kann, dann kann Ihnen dieser Artikel sehr helfen!

Der Inhalt dieses Artikels befasst sich mit dem Codebeispiel für die Implementierung des SMTP-E-Mail-Versands. Ich hoffe, dass es für Sie hilfreich ist.

PHP verwendet die SMTP-Klasse zum Versenden von E-Mails, was sich wirklich bewährt hat. Ich verwende sie schon seit langem und im Grunde gab es keine Probleme. Wenn der Blogger im Hintergrund dieses Blogs auf eine Nachricht antwortet, wird automatisch eine E-Mail mit einer neuen Antwortaufforderung an den Internetnutzer gesendet, was auch mit der in diesem Artikel beschriebenen Methode implementiert wird.

Die Methode zum Senden von E-Mails mithilfe der SMTP-Klasse ist tatsächlich sehr einfach und stabil. Die Klasse wurde von anderen geschrieben und muss nur aufgerufen werden. Sie können E-Mails mit nur wenigen Zeilen PHP-Quellcode und einfacher Konfiguration versenden. Freuen Sie sich darauf, es auszuprobieren?

<?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);

Das obige ist der detaillierte Inhalt vonCodebeispiel für PHP zur Implementierung des SMTP-E-Mail-Versands. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:cnblogs.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen