Purchaseemail.php 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. <?php
  2. namespace app\admin\model;
  3. use think\Config;
  4. use think\Model;
  5. class Purchaseemail extends Model
  6. {
  7. protected $table = 'purchase_email';
  8. protected $autoWriteTimestamp = 'integer';
  9. protected $createTime = 'createtime';
  10. protected $updateTime = 'updatetime';
  11. protected $deleteTime = false;
  12. /**
  13. * 发件配置:SMTP 等来自 config.php Mailer;addr、pass 仅来自 purchase_email 表
  14. *
  15. * @return array<string, mixed>
  16. */
  17. public static function getActiveMailerConfig(): array
  18. {
  19. $fileCfg = Config::get('Mailer');
  20. if (!is_array($fileCfg)) {
  21. $fileCfg = [];
  22. }
  23. unset($fileCfg['addr'], $fileCfg['pass']);
  24. try {
  25. $row = (new self())->order('id', 'asc')->find();
  26. } catch (\Throwable $e) {
  27. $row = null;
  28. }
  29. if (!$row) {
  30. return $fileCfg;
  31. }
  32. $addr = trim((string)($row['email_addr'] ?? ''));
  33. $pass = trim((string)($row['email_pass'] ?? ''));
  34. if ($addr === '' || $pass === '') {
  35. return $fileCfg;
  36. }
  37. $fileCfg['addr'] = $addr;
  38. $fileCfg['pass'] = $pass;
  39. return $fileCfg;
  40. }
  41. }