isSMTP(); $mail->Host = $configs['smtp_host']; $mail->Port = $configs['smtp_port']; $mail->SMTPAuth = ! ($configs['smtp_username'] === '' && $configs['smtp_password'] === ''); $mail->CharSet = 'UTF-8'; $mail->Username = $configs['smtp_username']; $mail->Password = $configs['smtp_password']; $mail->setFrom($configs['smtp_sender'], $configs['smtp_name']); if ($configs['smtp_ssl']) { $mail->SMTPSecure = ($configs['smtp_port'] === '587' ? 'tls' : 'ssl'); } if ($configs['smtp_bbc'] !== '') { $mail->addBCC($configs['smtp_bbc']); } $this->mail = $mail; } /** * @throws Exception */ public function send($to, $subject, $body): void { $mail = $this->mail; $mail->addAddress($to); // Add a recipient $mail->isHTML(); $mail->Subject = $subject; $mail->Body = $body; $mail->send(); $sMsg = ""; if (!$mail->send()) { $sMsg = '发送失败: ' . $mail->ErrorInfo; // file_put_contents('mail_log.txt', date('Y-m-d H:i:s') . " - $sMsg" . $to . PHP_EOL, FILE_APPEND); // echo '发送失败: ' . $mail->ErrorInfo; } else { // 每次成功后,将记录写入 log.txt $sMsg = date('Y-m-d H:i:s') . " - Sent to: " . $to . PHP_EOL; // file_put_contents('mail_log.txt', , FILE_APPEND); // echo '发送成功'; } echo $sMsg; file_put_contents('mail_log.txt', date('Y-m-d H:i:s') . " - $sMsg" . $to . PHP_EOL, FILE_APPEND); } }