>백엔드 개발 >PHP 튜토리얼 >SMTP 이메일 전송을 구현하는 PHP의 코드 예제

SMTP 이메일 전송을 구현하는 PHP의 코드 예제

不言
不言앞으로
2018-11-17 17:04:163400검색

PHP에 내장된 mail() 함수가 이메일을 보낼 수 없다는 사실로 여전히 어려움을 겪고 계시다면, 이제 운이 좋으신 것입니다. 이 기사가 도움이 될 수 있습니다!

이 기사의 내용은 PHP에서 SMTP 이메일 전송을 구현하는 코드 예제에 관한 것입니다. 필요한 친구가 참고할 수 있기를 바랍니다.

php는 smtp 클래스를 사용하여 실제로 시도되고 테스트된 이메일을 보냅니다. 오랫동안 사용해 왔지만 기본적으로 아무런 문제가 없었습니다. 이 블로그의 백그라운드에서 블로거가 메시지에 답장하면 새로운 답장 메시지가 포함된 이메일이 자동으로 네티즌에게 전송됩니다. 이 역시 이 기사의 방법을 사용하여 구현됩니다.

smtp 클래스를 사용하여 이메일을 보내는 방법은 실제로 매우 간단하고 안정적입니다. 클래스는 다른 사람이 작성한 것이므로 호출하기만 하면 됩니다. 몇 줄의 PHP 소스 코드와 간단한 구성만으로 이메일을 보낼 수 있습니다.

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

위 내용은 SMTP 이메일 전송을 구현하는 PHP의 코드 예제의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 cnblogs.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제