Email.php 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990
  1. <?php
  2. namespace catchAdmin\email\model;
  3. use catcher\base\CatchModel as Model;
  4. use PHPMailer\PHPMailer\PHPMailer;
  5. use PHPMailer\PHPMailer\Exception;
  6. use PHPMailer\PHPMailer\SMTP;
  7. class Email extends Model
  8. {
  9. // 表名
  10. public $name = 'email';
  11. // 数据库字段映射
  12. public $field = array(
  13. 'id',
  14. // 邮箱
  15. 'email',
  16. // 1 有效 -1 报废
  17. 'status',
  18. // 详情
  19. 'info',
  20. // 创建人ID
  21. 'creator_id',
  22. // 创建时间
  23. 'created_at',
  24. // 更新时间
  25. 'updated_at',
  26. // 软删除
  27. 'deleted_at',
  28. );
  29. /**
  30. * 所有邮箱
  31. */
  32. public function setEmail($emails)
  33. {
  34. $mail = new PHPMailer(true);
  35. try {
  36. //服务器配置
  37. $mail->CharSet ="UTF-8"; //设定邮件编码
  38. $mail->SMTPDebug = 0; // 调试模式输出
  39. $mail->isSMTP(); // 使用SMTP
  40. $mail->Host = 'smtp.qq.com'; // SMTP服务器
  41. $mail->SMTPAuth = true; // 允许 SMTP 认证
  42. $mail->Username = '1186820806@qq.com'; // SMTP 用户名 即邮箱的用户名
  43. $mail->Password = 'ihyrohhnjysljcaf'; // SMTP 密码 部分邮箱是授权码(例如163邮箱)
  44. $mail->SMTPSecure = 'ssl'; // 允许 TLS 或者ssl协议
  45. $mail->Port = 465; // 服务器端口 25 或者465 具体要看邮箱服务器支持
  46. $mail->setFrom('1186820806@qq.com', 'Mailer'); //发件人
  47. // $mail->addAddress('aaaa@126.com', 'Joe'); // 收件人
  48. //$mail->addAddress('ellen@example.com'); // 可添加多个收件人
  49. // $mail->addReplyTo('xxxx@163.com', 'info'); //回复的时候回复给哪个邮箱 建议和发件人一致
  50. //$mail->addCC('cc@example.com'); //抄送
  51. //$mail->addBCC('bcc@example.com'); //密送
  52. foreach($emails as $item)
  53. {
  54. $mail->addAddress($item);
  55. }
  56. //发送附件
  57. // $mail->addAttachment('../xy.zip'); // 添加附件
  58. // $mail->addAttachment('../thumb-1.jpg', 'new.jpg'); // 发送附件并且重命名
  59. //Content
  60. $mail->isHTML(true); // 是否以HTML文档格式发送 发送后客户端可直接显示对应HTML内容
  61. $mail->Subject = '系统警告';
  62. $mail->Body = '<h1>这里是邮件内容</h1>' . date('Y-m-d H:i:s');
  63. $mail->AltBody = '如果邮件客户端不支持HTML则显示此内容';
  64. $mail->send();
  65. echo '邮件发送成功';
  66. } catch (Exception $e) {
  67. echo '邮件发送失败: ', $mail->ErrorInfo;
  68. }
  69. }
  70. }