项目作者: kenote

项目描述 :
Mailer's Helper.
高级语言: TypeScript
项目地址: git://github.com/kenote/mailer-helper.git
创建时间: 2018-12-18T09:08:07Z
项目社区:https://github.com/kenote/mailer-helper

开源协议:MIT License

下载


mailer-helper

Mailer’s Helper.

NPM Version
NPM Downloads
Build Status
Gratipay

Installation

  1. $ npm install kenote-mailer-helper
  2. #
  3. $ yarn add kenote-mailer-helper

Usages

mailer.ts

  1. import { Mailer, Setting } from 'kenote-mailer-helper'
  2. import * as Mail from 'nodemailer/lib/mailer'
  3. @Setting({
  4. smtpOptions: {
  5. host: 'smtp.ethereal.email',
  6. port: 587,
  7. auth: {
  8. user: 'penelope.leuschke41@ethereal.email',
  9. pass: 'aPxRSFBXbM7dseEwKK'
  10. }
  11. },
  12. asyncRetryOptions: {
  13. times: 3,
  14. interval: 200
  15. },
  16. mailDir: 'mails',
  17. renderString: nunjucks.renderString
  18. })
  19. class NodeMailer extends Mailer {}
  20. /**
  21. * 发送邮件选项
  22. * @ from -- 发件人
  23. * 格式 -- 发件人名称 <发件人邮箱地址>
  24. * @ to -- 收件人
  25. * 格式 -- 收件人 <收件人邮箱地址>
  26. * 多个收件人用逗号分割
  27. * @ cc -- 抄送,可选项
  28. * 格式 -- 与收件人相同
  29. * @ bcc -- 密送,可选项
  30. * 格式 -- 与收件人相同
  31. * @ subject -- 标题
  32. * 格式 -- 字符串
  33. * @ text -- 正文,文本形式
  34. * 格式 -- 字符串
  35. * @ html -- 正文,HTML形式
  36. * 格式 -- HTML格式
  37. * @ attachments -- 附件,可选项
  38. * 格式 -- 数组
  39. * [
  40. * {
  41. * filename: 'README.md',
  42. * path: path.resolve(process.cwd(), 'README.md'),
  43. * cid: '00000001'
  44. * },
  45. * {
  46. * filename: 'README.md',
  47. * content: '发送内容',
  48. * cid: '00000002'
  49. * }
  50. * ]
  51. **/
  52. const mail: Mail = {
  53. from: 'penelope.leuschke41@ethereal.email',
  54. to: 'penelope.leuschke41@ethereal.email',
  55. subject: 'Ethereal Email',
  56. text: 'Ethereal Email.'
  57. }
  58. const nodeMailer: NodeMailer = new NodeMailer()
  59. // asyncSend
  60. nodeMailer.asyncSend(mail)
  61. // renderMail
  62. nodeMailer.renderMail('email_verify.mjml', {})
  63. // sendMail
  64. nodeMailer.sendMail('email_verify.mjml', mail, {})

email_verify.mjml

  1. <mjml>
  2. <mj-head>
  3. <mj-title>{{ site_name }}邮箱验证</mj-title>
  4. <mj-attributes>
  5. <mj-all font-size="15px" color="#646464" line-height="1.4" ></mj-all>
  6. <mj-class name="title" font-size="20px" color="#4e9c74" font-weight="bold" ></mj-class>
  7. <mj-attributes>
  8. </mj-head>
  9. <mj-body background-color="#ffffff" width="100%">
  10. <mj-section>
  11. <mj-column>
  12. <mj-text>亲爱的 {{ username }}:</mj-text>
  13. <mj-text>欢迎申请{{ site_name }}服务!</mj-text>
  14. <mj-text>你的{{ site_name }}帐号是: {{ username }}<br/>请点击下面的链接完成邮箱验证:</mj-text>
  15. <mj-text font-size="14px"><a href="{{ email_verify_url }}" target="_blank">{{ email_verify_url }}</a></mj-text>
  16. <mj-text>如果以上链接无法点击,请将该链接复制到浏览器(如 Chrome )的地址栏中访问,也可以成功完成邮箱验证!</mj-text>
  17. <mj-spacer height="30px" ></mj-spacer>
  18. <mj-text>1. 为了保障您账号的安全性, 请在{{ timeout }}小时内完成验证, 此链接将在您激活过一次后失效!</mj-text>
  19. <mj-text>2. 如您没有注册过{{ site_name }}账号, 请您忽略此邮件, 由此给您带来的不便敬请谅解。</mj-text>
  20. <mj-spacer height="30px" ></mj-spacer>
  21. <mj-text>- {{ site_name }}<br/>(这是一封自动产生的Email,请勿回复)</mj-text>
  22. </mj-column>
  23. </mj-section>
  24. </mj-body>
  25. </mjml>

License

this repo is released under the MIT License.