setName('send_bx_mail')->setDescription('每天22点定时发送邮箱'); } protected function execute(Input $input, Output $output) { try { return $this->sendMail(); } catch (\Exception $e) { Log::write('SendBxMail:'.$e->getMessage()); return false; } } public function sendMail() { // 文件路径 - 替换为你的实际文件路径 //$filePath = 'uploads/baoxian/20250327职业责任险投保清单.xlsx'; $excelFile = $this->getExcelFile(); if(empty($excelFile)) throw new \Exception("邮件发送失败. 错误信息: 路径不存在-101"); $filePath = $excelFile[0]; $filename = $excelFile[1]; if(empty($filePath)) throw new \Exception("邮件发送失败. 错误信息: 路径不存在-102"); $mail = new PHPMailer(true); try { // 邮件服务器设置 $mail->isSMTP(); // 使用SMTP发送邮件 $mail->Host = 'smtp.126.com'; // SMTP服务器地址,替换为你的SMTP服务器 $mail->SMTPAuth = true; // 启用SMTP认证 $mail->Username = 'whkyjl@126.com'; // SMTP用户名,替换为你的邮箱地址 $mail->Password = 'MNpgMjYMYehx3nPi'; // SMTP密码,替换为你的邮箱密码 $mail->SMTPSecure = PHPMailer::ENCRYPTION_SMTPS; // 开启加密,默认为无加密,可选`PHPMailer::ENCRYPTION_SMTPS` $mail->Port = 465; // $mail->SMTPDebug = 2; // 启用详细调试输出 $mail->CharSet = 'UTF-8'; // 发送者和接收者设置 $mail->setFrom('whkyjl@126.com', '武汉开源节流科技有限公司'); // 发件人邮箱和名称 $mail->addAddress('sujing@ub.chinalife-p.com.cn', '出单业务'); // 收件人邮箱和名称 $mail->addAddress('649478907@qq.com', '出单业务'); // 收件人邮箱和名称 $mail->addAddress('liliangjie@ub.chinalife-p.com.cn', '出单业务'); // 收件人邮箱和名称 $mail->addAddress('fangxuhao@outlook.com', '出单业务'); // 收件人邮箱和名称 // $mail->addAddress('1804628603@qq.com', '出单业务'); // 收件人邮箱和名称 $mail->addAddress('466014217@qq.com', '出单业务'); // 收件人邮箱和名称 // 设置邮件内容 $mail->isHTML(true); // 将邮件正文设置为HTML格式 // 设置邮件内容 $mail->Subject = mb_convert_encoding('请查收附件中的Excel文件', 'UTF-8', 'auto'); $mail->Body = mb_convert_encoding('

你好,
请查收附件中的Excel文件。

', 'UTF-8', 'auto'); $mail->AltBody = mb_convert_encoding('你好,请查收附件中的Excel文件。', 'UTF-8', 'auto'); // 添加附件 $mail->addAttachment($filePath, $filename); // 添加附件,第二个参数是显示在邮件中的文件名 $mail->send(); return '邮件发送成功'; } catch (\Exception $e) { throw new \Exception("邮件发送失败. 错误信息: {$mail->ErrorInfo}"); } } public function getExcelFile() { try { $downloadObj = new ServiceWorkMailLists(); $sheet = new ExcelWriter(); $lists = $downloadObj->excelExportList([]); $filename = $downloadObj->setFileName().'职业责任险投保清单'; $fields = $downloadObj->setExcelComplexFields(); if(!$lists || !$fields){ Log::info('ServiceWorkMail:lists或fields不存在--'.json_encode([$lists,$fields])); return ''; }else{ $sheet->savePath = './public/exports/'; $sheet->generateExcelFile($fields['zh_cn_fields'], $lists,$filename, $fields['data_fields']); return [$sheet->fileUrl(),$filename.'.xlsx']; } } catch (\Exception $e) { Log::info('ServiceWorkMail:'."生成职业责任险投保清单失败. 错误信息: {$e->getMessage()}"); return ''; } } }