test
新:
use PHPMailer\PHPMailer\PHPMailer; use PHPMailer\PHPMailer\Exception; require_once __DIR__.'/../../../plugins/PHPMailer-6.1.7/src/Exception.php'; require_once __DIR__.'/../../../plugins/PHPMailer-6.1.7/src/PHPMailer.php'; require_once __DIR__.'/../../../plugins/PHPMailer-6.1.7/src/SMTP.php'; // $sql=$DB->prepare("SELECT wo_id,employee_id FROM wo_list_employee WHERE wo_id = :wo_id"); // $sql->bindvalue(':wo_id',$wo_id,PDO::PARAM_INT); // $sql->execute(); // $result = $sql->fetch(PDO::FETCH_ASSOC); // 1、实例化PDO $pdo = Flight::get('DB'); //根据$wo_id 获取工单名称 $stmt = $pdo->query('SELECT wo_id,wo_name FROM wo_list WHERE wo_id = 03780'); $result = $stmt->fetch(PDO::FETCH_ASSOC); // 返回索引数组 //工单名称 $work_order_name=$result['wo_name']; //执行查询 $stmt = $pdo->query('SELECT wo_id,employee_id FROM wo_list_employee WHERE wo_id = 03780'); $result = $stmt->fetch(PDO::FETCH_ASSOC); // 返回索引数组 //获取员工ID,去找邮箱 $employee_id = $result["employee_id"]; $employee_int_id=intval($employee_id); $stmt = $pdo->query("SELECT * FROM admin_employee WHERE employee_id = $employee_int_id"); $result1 = $stmt->fetch(PDO::FETCH_ASSOC); // 返回索引数组 // 获取邮箱,以及邮箱人的姓名 //获取要发送的邮箱 $send_email=$result1['employee_email']; //发送的员工名称 $send_email_name=$result1['employee_name']; // //根据employee_id 去查找员工表中的邮箱 // $sql=$DB->prepare("SELECT employee_name, employee_email FROM admin_employee WHERE employee_id = :employee_id"); // $sql->bindvalue(':employee_id',$employee_id,PDO::PARAM_INT); // // $res = $pdo->prepare($sql);//准备查询语句 // $sql->execute(); // $admin_employe_result = $sql->fetch(PDO::FETCH_ASSOC); // //获取要发送的邮箱 // $send_email=$admin_employe_result['employee_email']; $mail = new PHPMailer; // 是否启用smtp的debug进行调试 开发环境建议开启 生产环境注释掉即可 默认关闭debug调试模式, //使用smtp鉴权方式发送邮件 $mail->isSMTP(); //smtp需要鉴权 这个必须是true $mail->SMTPAuth = true; // qq 邮箱的 smtp服务器地址,这里当然也可以写其他的 smtp服务器地址 $mail->Host = 'smtp.qq.com'; //smtp登录的账号 这里填入字符串格式的qq号即可() $mail->Username = '910624858@qq.com'; // 这个就是之前得到的授权码,一共16位 $mail->Password = 'syqyafshccsabbhh'; //设置使用ssl加密方式登录鉴权 $mail->SMTPSecure = 'ssl'; // //设置ssl连接smtp服务器的远程服务器端口号,可选465或587 $mail->Port = 465; //设置smtp的helo消息头 这个可有可无 内容任意 $mail->CharSet = 'UTF-8'; $mail->setFrom('910624858@qq.com', 'yanbing'); // $to 为收件人的邮箱地址,如果想一次性发送向多个邮箱地址,则只需要将下面这个方法多次调用即可 //$mail->addAddress($send_email); $mail->addAddress('yanbing910624858@163.com','testyanbiing'); //邮件正文是否为html编码 注意此处是一个方法 不再是属性 true或false $mail->isHTML(true); // 该邮件的主题 $title="EAMic工单提醒: {工单号 工单名称}"; $mail->Subject = $title; // 该邮件的正文内容 $content=" <h4>{$send_email_name}先生/女士,您好!</h4> <h4>您有新的工单 $wo_id : $work_order_name, 请登录EAMic®查看。</h4> <h4>点击 <a>https://ctwuxeamic.atlascopco.com/ </a>可查看详情</h4> <h4>祝您开心每一天!</h4> <h4>领值团队</h4> "; $mail->Body = $content; // 使用 send() 方法发送邮件 if(!$mail->send()) { return 'Mailer Error: ' . $mail->ErrorInfo; } else { return "发送成功"; }
旧:
<?php //接受参数工单号 //echo $wo_id; //die; //$test_wo_id=04526; //根据工单号获取要发送的员工邮箱 $pdo = new PDO("mysql:host=localhost;dbname=mic12345", 'root', 'matrix11'); $sql = "select * from wo_list_employee where wo_id = 04526"; $res = $pdo->prepare($sql);//准备查询语句 $res->execute(); $result = $res->fetch(PDO::FETCH_ASSOC); $employee_id = $result["employee_id"]; //根据employee_id 去查找员工表中的邮箱 $sql = "select * from admin_employee where employee_id = $employee_id"; $res = $pdo->prepare($sql);//准备查询语句 $res->execute(); $admin_employe_result = $res->fetch(PDO::FETCH_ASSOC); //进行发送邮件的操作 require_once ("plugins/PHPMailer-6.1.7/"); $mail=new \PHPMailer\PHPMailer\PHPMailer(); print_r($mail); die; print_r($admin_employe_result); die; //$obj=$pdo->prepare($sql); //$obj->execute(); //$obj->bindParam(1,$test_wo_id); //$res=$pdo->exec($sql); var_dump($res);
<?php use PHPMailer\PHPMailer\PHPMailer; use PHPMailer\PHPMailer\Exception; require_once __DIR__.'/../../../plugins/PHPMailer-6.1.7/src/Exception.php'; require_once __DIR__.'/../../../plugins/PHPMailer-6.1.7/src/PHPMailer.php'; require_once __DIR__.'/../../../plugins/PHPMailer-6.1.7/src/SMTP.php'; //接受参数工单号 //echo $wo_id; //die; //$test_wo_id=04526; //根据工单号获取要发送的员工邮箱 // $wf = $DB->prepare("SELECT {$column} // FROM admin_workflow_valid // WHERE valid_id = :valid_id;"); // $wf->bindvalue(':valid_id', $valid_id, PDO::PARAM_INT); // if (!$wf->execute()) { // Flight::error( // new Exception(implode(' ', array_slice($wf->errorInfo(), 2))) // ); // } $sql=$DB->prepare("SELECT wo_id from wo_list_employee WHERE wo_id = :wo_id"); $sql->bindvalue(':wo_id',$wo_id,PDO::PARAM_INT) // $res = $pdo->prepare($sql);//准备查询语句 $res->execute(); $result = $res->fetch(PDO::FETCH_ASSOC); $employee_id = $result["employee_id"]; //根据employee_id 去查找员工表中的邮箱 $sql=$DB->prepare("SELECT employee_name, employee_email,from admin_employee WHERE employee_id = :employee_id"); $sql->bindvalue(':employee_id',$employee_id,PDO::PARAM_INT) // $res = $pdo->prepare($sql);//准备查询语句 $res->execute(); $admin_employe_result = $res->fetch(PDO::FETCH_ASSOC); //进行发送邮件的操作 $mail = new PHPMailer; // 是否启用smtp的debug进行调试 开发环境建议开启 生产环境注释掉即可 默认关闭debug调试模式, // 可选择的值有 1 、 2 、 3 // $mail->SMTPDebug = 2; //使用smtp鉴权方式发送邮件 $mail->isSMTP(); //smtp需要鉴权 这个必须是true $mail->SMTPAuth = true; // qq 邮箱的 smtp服务器地址,这里当然也可以写其他的 smtp服务器地址 $mail->Host = 'smtp.qq.com'; //smtp登录的账号 这里填入字符串格式的qq号即可 $mail->Username = 'eamic@server.com'; // 这个就是之前得到的授权码,一共16位 $mail->Password = 'password'; //设置使用ssl加密方式登录鉴权 $mail->SMTPSecure = 'ssl'; // //设置ssl连接smtp服务器的远程服务器端口号,可选465或587 $mail->Port = 465; //设置smtp的helo消息头 这个可有可无 内容任意 // $mail->Helo = 'Hello smtp.qq.com Server'; //设置发件人的主机域 可有可无 默认为localhost 内容任意,建议使用你的域名 // $mail->Hostname = 'http://www.lsgogroup.com'; //设置发送的邮件的编码 也可选 GB2312 $mail->CharSet = 'UTF-8'; $mail->setFrom('1182xxxxx@qq.com', '林深时见禄'); // $to 为收件人的邮箱地址,如果想一次性发送向多个邮箱地址,则只需要将下面这个方法多次调用即可 $mail->addAddress($to); //邮件正文是否为html编码 注意此处是一个方法 不再是属性 true或false $mail->isHTML(true); // 该邮件的主题 $title="EAMic工单提醒: {工单号 工单名称}"; $mail->Subject = $title; // 该邮件的正文内容 $content=" <h4>{员工名字}先生/女士,您好!</h4> <h4>您有新的工单 {工单号 工单名称}, 请登录EAMic®查看。</h4> <h4>点击 <a>https://ctwuxeamic.atlascopco.com/ </a>可查看详情</h4> <h4>祝您开心每一天!</h4> <h4>领值团队</h4> "; $mail->Body = $content; //同样该方法可以多次调用 上传多个附件 // $mail->addAttachment('./Jlib-1.1.0.js','Jlib.js'); // 使用 send() 方法发送邮件 if(!$mail->send()) { return 'Mailer Error: ' . $mail->ErrorInfo; } else { return "发送成功"; }
pdo:
<?php /** * Bing * 邮件发送 */ use PHPMailer\PHPMailer\PHPMailer; use PHPMailer\PHPMailer\Exception; require_once __DIR__ . '/../../../plugins/PHPMailer-6.1.7/src/Exception.php'; require_once __DIR__ . '/../../../plugins/PHPMailer-6.1.7/src/PHPMailer.php'; require_once __DIR__ . '/../../../plugins/PHPMailer-6.1.7/src/SMTP.php'; //根据$wo_id获取工单名称和专业编码 $sql = $DB->prepare("SELECT wo_id,wo_name FROM wo_list WHERE wo_id = :wo_id"); $sql->bindvalue(':wo_id', $wo_id, PDO::PARAM_INT); $sql->execute(); $result = $sql->fetch(PDO::FETCH_ASSOC); //工单名称 $work_order_name = $result['wo_name']; //专业编码id: $discipline_code = $result['wo_speciality_id']; //根据专业编码ID获取专业 $sql = $DB->prepare("SELECT speciality_id,speciality_code FROM mic_speciality WHERE speciality_id = :discipline_code"); $sql->bindvalue(':discipline_code', $discipline_code, PDO::PARAM_INT); $sql->execute(); $result = $sql->fetch(PDO::FETCH_ASSOC); //获取专业,other发送,其他不发送邮件 $speciality_code = $result['speciality_code']; if ($speciality_code == 'OTHER') { //根据wo_id 获取员工ID $sql = $DB->prepare("SELECT wo_id,employee_id FROM wo_list_employee WHERE wo_id = :wo_id"); $sql->bindv alue(':wo_id', $wo_id, PDO::PARAM_INT); $sql->execute(); $result = $sql->fetch(PDO::FETCH_ASSOC); //获取员工ID,去找邮箱 $employee_id = $result["employee_id"]; $employee_int_id = intval($employee_id); //根据员工ID获取员工的信息 $stmt = $DB->prepare("SELECT employee_id,employee_name,employee_email FROM admin_employee WHERE employee_id = :employee_int_id"); $stmt->bindvalue(':employee_int_id', $employee_int_id, PDO::PARAM_INT); $stmt->execute(); $result = $sql->fetch(PDO::FETCH_ASSOC); // 获取邮箱,以及邮箱人的姓名 $send_email = $result['employee_email']; //发送的员工名称 $send_email_name = $result['employee_name']; $mail = new PHPMailer; // 是否启用smtp的debug进行调试 开发环境建议开启 生产环境注释掉即可 默认关闭debug调试模式, //使用smtp鉴权方式发送邮件 $mail->isSMTP(); //smtp需要鉴权 这个必须是true $mail->SMTPAuth = true; // qq 邮箱的 smtp服务器地址,这里当然也可以写其他的 smtp服务器地址 $mail->Host = 'smtp.qq.com'; //smtp登录的账号 这里填入字符串格式的qq号即可() $mail->Username = '910624858@qq.com'; // 这个就是之前得到的授权码,一共16位 $mail->Password = 'syqyafshccsabbhh'; //设置使用ssl加密方式登录鉴权 $mail->SMTPSecure = 'ssl'; // //设置ssl连接smtp服务器的远程服务器端口号,可选465或587 $mail->Port = 465; //设置smtp的helo消息头 这个可有可无 内容任意 $mail->CharSet = 'UTF-8'; $mail->setFrom('910624858@qq.com', 'yanbing'); // $to 为收件人的邮箱地址,如果想一次性发送向多个邮箱地址,则只需要将下面这个方法多次调用即可 $mail->addAddress($send_email, $send_email_name); //邮件正文是否为html编码 注意此处是一个方法 不再是属性 true或false $mail->isHTML(true); // 该邮件的主题 $title = "EAMic工单提醒: {工单号 工单名称}"; $mail->Subject = $title; // 该邮件的正文内容 $content = " <h4>{$send_email_name}先生/女士,您好!</h4> <h4>您有新的工单 $wo_id : $work_order_name, 请登录EAMic®查看。</h4> <h4>点击 <a>https://ctwuxeamic.atlascopco.com/ </a>可查看详情</h4> <h4>祝您开心每一天!</h4> <h4>领值团队</h4> "; $mail->Body = $content; // 使用 send() 方法发送邮件 if (!$mail->send()) { return 'Mailer Error: ' . $mail->ErrorInfo; } else { return "发送成功"; } } else { return false; }
领值:
<?php use PHPMailer\PHPMailer\PHPMailer; use PHPMailer\PHPMailer\Exception; require_once __DIR__ . '/../../../plugins/PHPMailer-6.1.7/src/Exception.php'; require_once __DIR__ . '/../../../plugins/PHPMailer-6.1.7/src/PHPMailer.php'; require_once __DIR__ . '/../../../plugins/PHPMailer-6.1.7/src/SMTP.php'; require_once __DIR__ . '/../../../functions/_email_send.php'; $wo_id='03780'; $wo_id=intval($wo_id); //根据$wo_id获取工单名称和专业编码 $sql = $DB->prepare("SELECT wo_id,wo_name,wo_speciality_id FROM wo_list WHERE wo_id = :wo_id"); $sql->bindvalue(':wo_id', $wo_id, PDO::PARAM_INT); $sql->execute(); $result = $sql->fetch(PDO::FETCH_ASSOC); //工单名称 $work_order_name = $result['wo_name']; //专业编码id: $discipline_code = $result['wo_speciality_id']; //根据专业编码ID获取专业 $sql = $DB->prepare("SELECT speciality_id,speciality_code FROM mic_speciality WHERE speciality_id = :discipline_code"); $sql->bindvalue(':discipline_code', $discipline_code, PDO::PARAM_INT); $sql->execute(); $result = $sql->fetch(PDO::FETCH_ASSOC); //获取专业,other发送,其他不发送邮件 //$speciality_code = $result['speciality_code']; $speciality_code='OTHER'; if ($speciality_code === 'OTHER') { //根据wo_id 获取员工ID $sql = $DB->prepare("SELECT wo_id,employee_id FROM wo_list_employee WHERE wo_id = :wo_id"); $sql->bindvalue(':wo_id', $wo_id, PDO::PARAM_INT); $sql->execute(); $result = $sql->fetch(PDO::FETCH_ASSOC); //获取员工ID,去找邮箱 $employee_id = $result["employee_id"]; $employee_int_id = intval($employee_id); //根据员工ID获取员工的信息 $stmt = $DB->prepare("SELECT employee_id,employee_name,employee_email FROM admin_employee WHERE employee_id = :employee_int_id"); $stmt->bindvalue(':employee_int_id', $employee_int_id); $stmt->execute(); $result = $stmt->fetch(PDO::FETCH_ASSOC); // 获取邮箱,以及邮箱人的姓名 $send_email = $result['employee_email']; //发送的员工名称 $send_email_name = $result['employee_name']; //邮件主题 $mail_subject = 'EAMic工单提醒:' . $wo_id . $work_order_name; // 该邮件的正文内容 $content = " <h4>{$send_email_name}先生/女士,您好!</h4> <h4>您有新的工单 $wo_id : $work_order_name, 请登录EAMic®查看。</h4> <h4>点击 <a>https://ctwuxeamic.atlascopco.com/ </a>可查看详情</h4> <h4>祝您开心每一天!</h4> <h4>领值团队</h4> "; $result = send_email('yanbing910624858@163.com', $mail_subject, $content, $content); var_dump($result); die; if (!$result) { return 456; } else { return 123; } } else { echo 3; die; }