email.tpl 18 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299
  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="#postal" class="nav-link" data-bs-toggle="tab">Postal</a>
  46. </li>
  47. <li class="nav-item">
  48. <a href="#ses" class="nav-link" data-bs-toggle="tab">AWS SES</a>
  49. </li>
  50. </ul>
  51. </div>
  52. <div class="card-body">
  53. <div class="tab-content">
  54. <div class="tab-pane active show" id="email">
  55. <div class="card-body">
  56. <div class="form-group mb-3 row">
  57. <label class="form-label col-3 col-form-label">邮件服务提供商</label>
  58. <div class="col">
  59. <select id="mail_driver" class="col form-select" value="{$settings['mail_driver']}">
  60. <option value="none" {if $settings['mail_driver'] == "none"}selected{/if}>none</option>
  61. <option value="smtp" {if $settings['mail_driver'] == "smtp"}selected{/if}>smtp</option>
  62. <option value="sendgrid" {if $settings['mail_driver'] == "sendgrid"}selected{/if}>sendgrid</option>
  63. <option value="mailgun" {if $settings['mail_driver'] == "mailgun"}selected{/if}>mailgun</option>
  64. <option value="postal" {if $settings['mail_driver'] == "postal"}selected{/if}>postal</option>
  65. <option value="ses" {if $settings['mail_driver'] == "ses"}selected{/if}>ses</option>
  66. </select>
  67. </div>
  68. </div>
  69. <div class="form-group mb-3 row">
  70. <label class="form-label col-3 col-form-label">测试邮件接收地址</label>
  71. <input type="text" class="form-control" id="recipient" value="">
  72. <div class="row my-3">
  73. <div class="col">
  74. <button id="test-email" class="btn btn-primary">发送测试邮件</button>
  75. </div>
  76. </div>
  77. </div>
  78. </div>
  79. </div>
  80. <div class="tab-pane" id="smtp">
  81. <div class="card-body">
  82. <div class="form-group mb-3 row">
  83. <label class="form-label col-3 col-form-label">SMTP 主机地址</label>
  84. <div class="col">
  85. <input id="smtp_host" type="text" class="form-control" value="{$settings['smtp_host']}">
  86. </div>
  87. </div>
  88. <div class="form-group mb-3 row">
  89. <label class="form-label col-3 col-form-label">SMTP 用户名</label>
  90. <div class="col">
  91. <input id="smtp_username" type="text" class="form-control" value="{$settings['smtp_username']}">
  92. </div>
  93. </div>
  94. <div class="form-group mb-3 row">
  95. <label class="form-label col-3 col-form-label">SMTP 密码</label>
  96. <div class="col">
  97. <input id="smtp_password" type="text" class="form-control" value="{$settings['smtp_password']}">
  98. </div>
  99. </div>
  100. <div class="form-group mb-3 row">
  101. <label class="form-label col-3 col-form-label">SMTP 端口</label>
  102. <div class="col">
  103. <select id="smtp_port" class="col form-select" value="{$settings['smtp_port']}">
  104. <option value="465" {if $settings['smtp_port'] == "465"}selected{/if}>465</option>
  105. <option value="587" {if $settings['smtp_port'] == "587"}selected{/if}>587</option>
  106. <option value="443" {if $settings['smtp_port'] == "443"}selected{/if}>2525</option>
  107. <option value="80" {if $settings['smtp_port'] == "80"}selected{/if}>2525</option>
  108. <option value="25" {if $settings['smtp_port'] == "25"}selected{/if}>25</option>
  109. </select>
  110. </div>
  111. </div>
  112. <div class="form-group mb-3 row">
  113. <label class="form-label col-3 col-form-label">SMTP 发件人名称</label>
  114. <div class="col">
  115. <input id="smtp_name" type="text" class="form-control" value="{$settings['smtp_name']}">
  116. </div>
  117. </div>
  118. <div class="form-group mb-3 row">
  119. <label class="form-label col-3 col-form-label">SMTP 发信地址</label>
  120. <div class="col">
  121. <input id="smtp_sender" type="text" class="form-control" value="{$settings['smtp_sender']}">
  122. </div>
  123. </div>
  124. <div class="form-group mb-3 row">
  125. <label class="form-label col-3 col-form-label">是否使用 TLS/SSL</label>
  126. <div class="col">
  127. <select id="smtp_ssl" class="col form-select" value="{$settings['smtp_ssl']}">
  128. <option value="1" {if $settings['smtp_ssl'] == true}selected{/if}>开启</option>
  129. <option value="0" {if $settings['smtp_ssl'] == false}selected{/if}>关闭</option>
  130. </select>
  131. </div>
  132. </div>
  133. <div class="form-group mb-3 row">
  134. <label class="form-label col-3 col-form-label">客户邮件副本接收邮箱</label>
  135. <div class="col">
  136. <input id="smtp_bbc" type="text" class="form-control" value="{$settings['smtp_bbc']}">
  137. </div>
  138. </div>
  139. </div>
  140. </div>
  141. <div class="tab-pane" id="sendgrid">
  142. <div class="card-body">
  143. <div class="form-group mb-3 row">
  144. <label class="form-label col-3 col-form-label">Sendgrid 密钥</label>
  145. <div class="col">
  146. <input id="sendgrid_key" type="text" class="form-control" value="{$settings['sendgrid_key']}">
  147. </div>
  148. </div>
  149. <div class="form-group mb-3 row">
  150. <label class="form-label col-3 col-form-label">Sendgrid 发信地址</label>
  151. <div class="col">
  152. <input id="sendgrid_sender" type="text" class="form-control" value="{$settings['sendgrid_sender']}">
  153. </div>
  154. </div>
  155. <div class="form-group mb-3 row">
  156. <label class="form-label col-3 col-form-label">Sendgrid 发件人名称</label>
  157. <div class="col">
  158. <input id="sendgrid_name" type="text" class="form-control" value="{$settings['sendgrid_name']}">
  159. </div>
  160. </div>
  161. </div>
  162. </div>
  163. <div class="tab-pane" id="mailgun">
  164. <div class="card-body">
  165. <div class="form-group mb-3 row">
  166. <label class="form-label col-3 col-form-label">Mailgun 密钥</label>
  167. <div class="col">
  168. <input id="mailgun_key" type="text" class="form-control" value="{$settings['mailgun_key']}">
  169. </div>
  170. </div>
  171. <div class="form-group mb-3 row">
  172. <label class="form-label col-3 col-form-label">Mailgun 域名</label>
  173. <div class="col">
  174. <input id="mailgun_domain" type="text" class="form-control" value="{$settings['mailgun_domain']}">
  175. </div>
  176. </div>
  177. <div class="form-group mb-3 row">
  178. <label class="form-label col-3 col-form-label">Mailgun 发信地址</label>
  179. <div class="col">
  180. <input id="mailgun_sender" type="text" class="form-control" value="{$settings['mailgun_sender']}">
  181. </div>
  182. </div>
  183. <div class="form-group mb-3 row">
  184. <label class="form-label col-3 col-form-label">Mailgun 发信人名称</label>
  185. <div class="col">
  186. <input id="mailgun_sender_name" type="text" class="form-control" value="{$settings['mailgun_sender_name']}">
  187. </div>
  188. </div>
  189. </div>
  190. </div>
  191. <div class="tab-pane" id="postal">
  192. <div class="card-body">
  193. <div class="form-group mb-3 row">
  194. <label class="form-label col-3 col-form-label">Postal API地址</label>
  195. <div class="col">
  196. <input id="postal_host" type="text" class="form-control" value="{$settings['postal_host']}">
  197. </div>
  198. </div>
  199. <div class="form-group mb-3 row">
  200. <label class="form-label col-3 col-form-label">Postal API密钥</label>
  201. <div class="col">
  202. <input id="postal_key" type="text" class="form-control" value="{$settings['postal_key']}">
  203. </div>
  204. </div>
  205. <div class="form-group mb-3 row">
  206. <label class="form-label col-3 col-form-label">Postal发件邮箱</label>
  207. <div class="col">
  208. <input id="postal_sender" type="text" class="form-control" value="{$settings['postal_sender']}">
  209. </div>
  210. </div>
  211. <div class="form-group mb-3 row">
  212. <label class="form-label col-3 col-form-label">Postal发件人名称</label>
  213. <div class="col">
  214. <input id="postal_name" type="text" class="form-control" value="{$settings['postal_name']}">
  215. </div>
  216. </div>
  217. </div>
  218. </div>
  219. <div class="tab-pane" id="ses">
  220. <div class="card-body">
  221. <div class="form-group mb-3 row">
  222. <label class="form-label col-3 col-form-label">AWS 密钥 ID</label>
  223. <div class="col">
  224. <input id="aws_access_key_id" type="text" class="form-control" value="{$settings['aws_access_key_id']}">
  225. </div>
  226. </div>
  227. <div class="form-group mb-3 row">
  228. <label class="form-label col-3 col-form-label">AWS 密钥</label>
  229. <div class="col">
  230. <input id="aws_secret_access_key" type="text" class="form-control" value="{$settings['aws_secret_access_key']}">
  231. </div>
  232. </div>
  233. <div class="form-group mb-3 row">
  234. <label class="form-label col-3 col-form-label">AWS 区域</label>
  235. <div class="col">
  236. <input id="aws_region" type="text" class="form-control" value="{$settings['aws_region']}">
  237. </div>
  238. </div>
  239. <div class="form-group mb-3 row">
  240. <label class="form-label col-3 col-form-label">AWS SES 发信地址</label>
  241. <div class="col">
  242. <input id="aws_ses_sender" type="text" class="form-control" value="{$settings['aws_ses_sender']}">
  243. </div>
  244. </div>
  245. </div>
  246. </div>
  247. </div>
  248. </div>
  249. </div>
  250. </div>
  251. </div>
  252. </div>
  253. <script>
  254. $("#save-setting").click(function() {
  255. $.ajax({
  256. url: '/admin/setting/email',
  257. type: 'POST',
  258. dataType: "json",
  259. data: {
  260. {foreach $update_field as $key}
  261. {$key}: $('#{$key}').val(),
  262. {/foreach}
  263. },
  264. success: function(data) {
  265. if (data.ret == 1) {
  266. $('#success-message').text(data.msg);
  267. $('#success-dialog').modal('show');
  268. } else {
  269. $('#fail-message').text(data.msg);
  270. $('#fail-dialog').modal('show');
  271. }
  272. }
  273. })
  274. });
  275. $("#test-email").click(function() {
  276. $.ajax({
  277. url: '/admin/setting/test_email',
  278. type: 'POST',
  279. dataType: "json",
  280. data: {
  281. recipient: $('#recipient').val(),
  282. },
  283. success: function(data) {
  284. if (data.ret == 1) {
  285. $('#success-message').text(data.msg);
  286. $('#success-dialog').modal('show');
  287. } else {
  288. $('#fail-message').text(data.msg);
  289. $('#fail-dialog').modal('show');
  290. }
  291. }
  292. })
  293. });
  294. </script>
  295. {include file='admin/tabler_footer.tpl'}