email.tpl 16 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273
  1. {include file='admin/tabler_header.tpl'}
  2. <div class="page-wrapper">
  3. <div class="container-xl">
  4. <div class="page-header d-print-none text-white">
  5. <div class="row align-items-center">
  6. <div class="col">
  7. <h2 class="page-title">
  8. <span class="home-title">邮件设置</span>
  9. </h2>
  10. <div class="page-pretitle my-3">
  11. <span class="home-subtitle">设置站点的邮件系统</span>
  12. </div>
  13. </div>
  14. <div class="col-auto ms-auto d-print-none">
  15. <div class="btn-list">
  16. <a id="save-setting" href="#" class="btn btn-primary">
  17. <i class="icon ti ti-device-floppy"></i>
  18. 保存
  19. </a>
  20. </div>
  21. </div>
  22. </div>
  23. </div>
  24. </div>
  25. <div class="page-body">
  26. <div class="container-xl">
  27. <div class="row row-deck row-cards">
  28. <div class="col-md-12">
  29. <div class="card">
  30. <div class="card-header">
  31. <ul class="nav nav-tabs card-header-tabs" data-bs-toggle="tabs">
  32. <li class="nav-item">
  33. <a href="#email" class="nav-link active" data-bs-toggle="tab">邮件设置</a>
  34. </li>
  35. <li class="nav-item">
  36. <a href="#smtp" class="nav-link" data-bs-toggle="tab">SMTP</a>
  37. </li>
  38. <li class="nav-item">
  39. <a href="#sendgrid" class="nav-link" data-bs-toggle="tab">Sendgrid</a>
  40. </li>
  41. <li class="nav-item">
  42. <a href="#mailgun" class="nav-link" data-bs-toggle="tab">Mailgun</a>
  43. </li>
  44. <li class="nav-item">
  45. <a href="#ses" class="nav-link" data-bs-toggle="tab">AWS SES</a>
  46. </li>
  47. </ul>
  48. </div>
  49. <div class="card-body">
  50. <div class="tab-content">
  51. <div class="tab-pane active show" id="email">
  52. <div class="card-body">
  53. <div class="form-group mb-3 row">
  54. <label class="form-label col-3 col-form-label">邮件服务提供商</label>
  55. <div class="col">
  56. <select id="mail_driver" class="col form-select" value="{$settings['mail_driver']}">
  57. <option value="none" {if $settings['mail_driver'] == "none"}selected{/if}>none</option>
  58. <option value="smtp" {if $settings['mail_driver'] == "smtp"}selected{/if}>smtp</option>
  59. <option value="sendgrid" {if $settings['mail_driver'] == "sendgrid"}selected{/if}>sendgrid</option>
  60. <option value="mailgun" {if $settings['mail_driver'] == "mailgun"}selected{/if}>mailgun</option>
  61. <option value="ses" {if $settings['mail_driver'] == "ses"}selected{/if}>ses</option>
  62. </select>
  63. </div>
  64. </div>
  65. <div class="form-group mb-3 row">
  66. <label class="form-label col-3 col-form-label">测试邮件接收地址</label>
  67. <input type="text" class="form-control" id="recipient" value="">
  68. <div class="row my-3">
  69. <div class="col">
  70. <button id="test-email" class="btn btn-primary">发送测试邮件</button>
  71. </div>
  72. </div>
  73. </div>
  74. </div>
  75. </div>
  76. <div class="tab-pane" id="smtp">
  77. <div class="card-body">
  78. <div class="form-group mb-3 row">
  79. <label class="form-label col-3 col-form-label">SMTP 主机地址</label>
  80. <div class="col">
  81. <input id="smtp_host" type="text" class="form-control" value="{$settings['smtp_host']}">
  82. </div>
  83. </div>
  84. <div class="form-group mb-3 row">
  85. <label class="form-label col-3 col-form-label">SMTP 用户名</label>
  86. <div class="col">
  87. <input id="smtp_username" type="text" class="form-control" value="{$settings['smtp_username']}">
  88. </div>
  89. </div>
  90. <div class="form-group mb-3 row">
  91. <label class="form-label col-3 col-form-label">SMTP 用户名</label>
  92. <div class="col">
  93. <input id="smtp_username" type="text" class="form-control" value="{$settings['smtp_username']}">
  94. </div>
  95. </div>
  96. <div class="form-group mb-3 row">
  97. <label class="form-label col-3 col-form-label">SMTP 密码</label>
  98. <div class="col">
  99. <input id="smtp_password" type="text" class="form-control" value="{$settings['smtp_password']}">
  100. </div>
  101. </div>
  102. <div class="form-group mb-3 row">
  103. <label class="form-label col-3 col-form-label">SMTP 用户名</label>
  104. <div class="col">
  105. <input id="smtp_username" type="text" class="form-control" value="{$settings['smtp_username']}">
  106. </div>
  107. </div>
  108. <div class="form-group mb-3 row">
  109. <label class="form-label col-3 col-form-label">SMTP 端口</label>
  110. <div class="col">
  111. <select id="smtp_port" class="col form-select" value="{$settings['smtp_port']}">
  112. <option value="465" {if $settings['smtp_port'] == "465"}selected{/if}>465</option>
  113. <option value="587" {if $settings['smtp_port'] == "587"}selected{/if}>587</option>
  114. <option value="443" {if $settings['smtp_port'] == "443"}selected{/if}>2525</option>
  115. <option value="80" {if $settings['smtp_port'] == "80"}selected{/if}>2525</option>
  116. <option value="25" {if $settings['smtp_port'] == "25"}selected{/if}>25</option>
  117. </select>
  118. </div>
  119. </div>
  120. <div class="form-group mb-3 row">
  121. <label class="form-label col-3 col-form-label">SMTP 发件人名称</label>
  122. <div class="col">
  123. <input id="smtp_name" type="text" class="form-control" value="{$settings['smtp_name']}">
  124. </div>
  125. </div>
  126. <div class="form-group mb-3 row">
  127. <label class="form-label col-3 col-form-label">SMTP 发信地址</label>
  128. <div class="col">
  129. <input id="smtp_sender" type="text" class="form-control" value="{$settings['smtp_sender']}">
  130. </div>
  131. </div>
  132. <div class="form-group mb-3 row">
  133. <label class="form-label col-3 col-form-label">是否使用 TLS/SSL</label>
  134. <div class="col">
  135. <select id="smtp_ssl" class="col form-select" value="{$settings['smtp_ssl']}">
  136. <option value="1" {if $settings['smtp_ssl'] == true}selected{/if}>开启</option>
  137. <option value="0" {if $settings['smtp_ssl'] == false}selected{/if}>关闭</option>
  138. </select>
  139. </div>
  140. </div>
  141. <div class="form-group mb-3 row">
  142. <label class="form-label col-3 col-form-label">客户邮件副本接收邮箱</label>
  143. <div class="col">
  144. <input id="smtp_bbc" type="text" class="form-control" value="{$settings['smtp_bbc']}">
  145. </div>
  146. </div>
  147. </div>
  148. </div>
  149. <div class="tab-pane" id="sendgrid">
  150. <div class="card-body">
  151. <div class="form-group mb-3 row">
  152. <label class="form-label col-3 col-form-label">Sendgrid 密钥</label>
  153. <div class="col">
  154. <input id="sendgrid_key" type="text" class="form-control" value="{$settings['sendgrid_key']}">
  155. </div>
  156. </div>
  157. <div class="form-group mb-3 row">
  158. <label class="form-label col-3 col-form-label">Sendgrid 发信地址</label>
  159. <div class="col">
  160. <input id="sendgrid_sender" type="text" class="form-control" value="{$settings['sendgrid_sender']}">
  161. </div>
  162. </div>
  163. <div class="form-group mb-3 row">
  164. <label class="form-label col-3 col-form-label">Sendgrid 发件人名称</label>
  165. <div class="col">
  166. <input id="sendgrid_name" type="text" class="form-control" value="{$settings['sendgrid_name']}">
  167. </div>
  168. </div>
  169. </div>
  170. </div>
  171. <div class="tab-pane" id="mailgun">
  172. <div class="card-body">
  173. <div class="form-group mb-3 row">
  174. <label class="form-label col-3 col-form-label">Mailgun 密钥</label>
  175. <div class="col">
  176. <input id="mailgun_key" type="text" class="form-control" value="{$settings['mailgun_key']}">
  177. </div>
  178. </div>
  179. <div class="form-group mb-3 row">
  180. <label class="form-label col-3 col-form-label">Mailgun 域名</label>
  181. <div class="col">
  182. <input id="mailgun_domain" type="text" class="form-control" value="{$settings['mailgun_domain']}">
  183. </div>
  184. </div>
  185. <div class="form-group mb-3 row">
  186. <label class="form-label col-3 col-form-label">Mailgun 发信地址</label>
  187. <div class="col">
  188. <input id="mailgun_sender" type="text" class="form-control" value="{$settings['mailgun_sender']}">
  189. </div>
  190. </div>
  191. </div>
  192. </div>
  193. <div class="tab-pane" id="ses">
  194. <div class="card-body">
  195. <div class="form-group mb-3 row">
  196. <label class="form-label col-3 col-form-label">AWS 密钥 ID</label>
  197. <div class="col">
  198. <input id="aws_access_key_id" type="text" class="form-control" value="{$settings['aws_access_key_id']}">
  199. </div>
  200. </div>
  201. <div class="form-group mb-3 row">
  202. <label class="form-label col-3 col-form-label">AWS 密钥</label>
  203. <div class="col">
  204. <input id="aws_secret_access_key" type="text" class="form-control" value="{$settings['aws_secret_access_key']}">
  205. </div>
  206. </div>
  207. <div class="form-group mb-3 row">
  208. <label class="form-label col-3 col-form-label">AWS 区域</label>
  209. <div class="col">
  210. <input id="aws_region" type="text" class="form-control" value="{$settings['aws_region']}">
  211. </div>
  212. </div>
  213. <div class="form-group mb-3 row">
  214. <label class="form-label col-3 col-form-label">AWS SES 发信地址</label>
  215. <div class="col">
  216. <input id="aws_ses_sender" type="text" class="form-control" value="{$settings['aws_ses_sender']}">
  217. </div>
  218. </div>
  219. </div>
  220. </div>
  221. </div>
  222. </div>
  223. </div>
  224. </div>
  225. </div>
  226. </div>
  227. <script>
  228. $("#save-setting").click(function() {
  229. $.ajax({
  230. url: '/admin/setting/captcha',
  231. type: 'POST',
  232. dataType: "json",
  233. data: {
  234. {foreach $update_field as $key}
  235. {$key}: $('#{$key}').val(),
  236. {/foreach}
  237. },
  238. success: function(data) {
  239. if (data.ret == 1) {
  240. $('#success-message').text(data.msg);
  241. $('#success-dialog').modal('show');
  242. } else {
  243. $('#fail-message').text(data.msg);
  244. $('#fail-dialog').modal('show');
  245. }
  246. }
  247. })
  248. });
  249. $("#test-email").click(function() {
  250. $.ajax({
  251. url: '/admin/setting/test_email',
  252. type: 'POST',
  253. dataType: "json",
  254. data: {
  255. recipient: $('#recipient').val(),
  256. },
  257. success: function(data) {
  258. if (data.ret == 1) {
  259. $('#success-message').text(data.msg);
  260. $('#success-dialog').modal('show');
  261. } else {
  262. $('#fail-message').text(data.msg);
  263. $('#fail-dialog').modal('show');
  264. }
  265. }
  266. })
  267. });
  268. </script>
  269. {include file='admin/tabler_footer.tpl'}