email.html 5.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118
  1. {extend name="../../base/view/common/base" /}
  2. <!-- 主体 -->
  3. {block name="body"}
  4. <form class="layui-form p-4">
  5. <h3 class="pb-3">邮箱配置</h3>
  6. <table class="layui-table layui-table-form">
  7. <tr>
  8. <td class="layui-td-gray-2">SMTP地址<font>*</font></td>
  9. <td>
  10. <input type="hidden" name="id" value="{$id}">
  11. <input type="text" name="smtp" lay-verify="required" autocomplete="off" placeholder="请输入SMTP服务器地址" lay-reqText="请输入SMTP服务器地址" class="layui-input" value="{$config.smtp|default=''}" style="width:240px;display: inline-block;">
  12. <span style="color:#999; font-size:12px; margin-left:5px">如:QQ邮箱的SMTP服务器地址是smtp.qq.com,163邮箱的SMTP服务器地址是smtp.163.com</span>
  13. </td>
  14. </tr>
  15. <tr>
  16. <td class="layui-td-gray-2">协议端口号<font>*</font></td>
  17. <td>
  18. <input type="text" name="smtp_port" lay-verify="required" autocomplete="off" placeholder="请输入端口" lay-reqText="请输入端口" class="layui-input" value="{$config.smtp_port|default=''}" style="width:240px;display: inline-block;"><span style="color:#999; font-size:12px; margin-left:5px">如:QQ邮箱的ssl协议方式端口号是465/587,163邮箱的ssl协议方式端口号是465/994</span>
  19. </td>
  20. </tr>
  21. <tr>
  22. <td class="layui-td-gray">邮箱账户<font>*</font></td>
  23. <td><input type="text" name="smtp_user" autocomplete="off" lay-verify="required" placeholder="请输入邮箱用户名" lay-reqText="请输入邮箱用户名" class="layui-input" value="{$config.smtp_user|default=''}"style="width:240px;display: inline-block;"><span style="color:#999; font-size:12px; margin-left:5px">如:gougucms@qq.com</span>
  24. </td>
  25. </tr>
  26. <tr>
  27. <td class="layui-td-gray">邮箱密码<font>*</font></td>
  28. <td><input type="password" name="smtp_pwd" lay-verify="required" autocomplete="off" placeholder="请输入邮箱密码" class="layui-input" value="{$config.smtp_pwd|default=''}" style="width:240px;display: inline-block;"><span style="color:#999; font-size:12px; margin-left:5px">不一定是登录密码,如QQ邮箱的是第三方授权登录码,要自己去开启,在邮箱的设置->账户->POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服务</span>
  29. </td>
  30. </tr>
  31. <tr>
  32. <td class="layui-td-gray">发送人<font>*</font></td>
  33. <td>
  34. <input type="text" name="from" autocomplete="off" lay-verify="required" placeholder="请输入要显示的发送者" lay-reqText="请输入要显示的发送者" class="layui-input" value="{$config.from|default=''}" style="width:240px; display: inline-block;">
  35. <span style="color:#999; font-size:12px; margin-left:5px">用于展示给发送方,如:勾股CMS系统管理员</span>
  36. </td>
  37. </tr>
  38. <tr>
  39. <td class="layui-td-gray">显示的邮箱<font>*</font></td>
  40. <td>
  41. <input type="text" name="email" lay-verify="required" autocomplete="off" placeholder="请输入要显示的发送者邮箱" lay-reqText="请输入要显示的发送者邮箱" class="layui-input" value="{$config.email|default=''}" style="width:240px;display: inline-block;">
  42. <span style="color:#999; font-size:12px; margin-left:5px">可以不同于上面的账户,用于展示给发送方的邮箱,如:admin@gougucms.com</span>
  43. </td>
  44. </tr>
  45. <tr>
  46. <td class="layui-td-gray">邮件模板</td>
  47. <td><textarea name="template" placeholder="" class="layui-textarea" id="container">{$config.template|default=''}</textarea>
  48. </td>
  49. </tr>
  50. </table>
  51. <div class="pt-4">
  52. <button class="layui-btn layui-btn-normal" lay-submit="" lay-filter="webform">立即提交</button>
  53. <button lay-event="email" class="layui-btn">发送测试</button>
  54. <button type="reset" class="layui-btn layui-btn-primary">重置</button>
  55. </div>
  56. </form>
  57. {/block}
  58. <!-- /主体 -->
  59. <!-- 脚本 -->
  60. {block name="script"}
  61. <script>
  62. const moduleInit = ['tool', 'tinymce'];
  63. function gouguInit() {
  64. var form = layui.form, tool = layui.tool, tinymce = layui.tinymce;
  65. var edit = tinymce.render({
  66. selector: "#container",
  67. height: 320
  68. });
  69. //监听提交
  70. form.on('submit(webform)', function (data) {
  71. data.field.template = tinyMCE.editors['container'].getContent();
  72. let callback = function (e) {
  73. layer.msg(e.msg);
  74. if (e.code == 0) {
  75. tool.sideClose(1000);
  76. }
  77. }
  78. tool.post("/home/conf/edit", data.field, callback);
  79. return false;
  80. });
  81. $('body').on('click', '[lay-event="email"]', function () {
  82. layer.prompt({
  83. formType: 0,
  84. value: '',
  85. title: '输入接收测试邮件的邮箱',
  86. id: 'email_to'
  87. }, function (value, index, elem) {
  88. var isEmail = /^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/;
  89. if (value.length < 6 || !(isEmail.test(value))) {
  90. layer.tips('请正确输入邮箱', elem);
  91. return false;
  92. }
  93. $.ajax({
  94. url: "/api/index/email_test",
  95. data: { email: value },
  96. type: "post",
  97. beforeSend: function () {
  98. // 禁用按钮防止重复提交
  99. $("#email_to input").val('');
  100. },
  101. success: function (e) {
  102. layer.msg(e.msg);
  103. if (e.code == 0) {
  104. layer.close(index);
  105. }
  106. }
  107. })
  108. });
  109. return false;
  110. })
  111. }
  112. </script>
  113. {/block}
  114. <!-- /脚本 -->