要在 PHP 中发送电子邮件,您可以使用 PHPMailer 或 SwiftMailer 等第三方库,也可以使用 PHP 内置的 mail() 函数。下面是用PHPMailer发送实例。
一、安装PHPMailer
composer require phpmailer/phpmailer
二、发送邮件
<?php namespace app\admin\service; use PHPMailer\PHPMailer\PHPMailer; use PHPMailer\PHPMailer\Exception; class MailService { /** * @param $to * @param string $subject * @param string $content * @param string $addAttachment * @return array * @throws Exception * @author: LuckyHhy <jackhhy520@qq.com> * @describe:发送邮件 */ public static function sendEmail($to,$subject='',$content='',$addAttachment=''){ //判断openssl是否开启 $openssl_funcs = get_extension_funcs('openssl'); if(!$openssl_funcs){ return ['code'=>0 , 'msg'=>'请先开启openssl扩展']; } $config=sysconfig("mail"); $mail = new PHPMailer; $mail->CharSet = 'UTF-8'; //设定邮件编码,默认ISO-8859-1,如果发中文此项必须设置,否则乱码 $mail->isSMTP(); $mail->SMTPDebug = 0; //Whether to use SMTP authentication $mail->SMTPAuth = true; //调试输出格式 $mail->Debugoutput = 'html'; //smtp服务器 $mail->Host = $config['mail_smtp_host']; //端口 - likely to be 25, 465 or 587 $mail->Port = $config['mail_smtp_port']; $mail->SMTPSecure =$config['mail_secure'];// 使用安全协议 tls,ssl //用户名 $mail->Username = $config['mail_smtp_user']; //密码 $mail->Password = $config['mail_smtp_pass']; //Set who the message is to be sent from $mail->setFrom($config['mail_smtp_user'],$config['mail_smtp_name']); //回复地址 //$mail->addReplyTo('replyto@example.com', 'First Last'); //接收邮件方 if(is_array($to)){ foreach ($to as $v){ $mail->addAddress($v); } }else{ $mail->addAddress($to); } $mail->isHTML(true);// send as HTML //标题 $mail->Subject = $subject; //邮箱正文 $mail->Body = $content; //添加附件 if (!empty($addAttachment)){ $mail->addAttachment($addAttachment); } try { $mail->send(); return ['code'=>1 , 'msg'=>'发送成功']; }catch (Exception $e){ return ['code'=>0 , 'msg'=>$e->getMessage()]; } } }
[embed_post ids=73,77]