New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

moka-email

Package Overview
Dependencies
Maintainers
1
Versions
2
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

moka-email

[![react](https://img.shields.io/badge/react-v16-blue)](https://reactjs.org/) [![lingui](https://img.shields.io/badge/lingui-v1-blue)](https://lingui.js.org/) [![babel](https://img.shields.io/badge/babel-v7-yellow)](https://babeljs.io/) [![express](https:

  • 0.11.26
  • latest
  • npm
  • Socket score

Version published
Weekly downloads
3
Maintainers
1
Weekly downloads
 
Created
Source

moka-email

react lingui babel express

current version: v0.11.26

可视化文档

master branch的docs目录

Change Log

CHANGELOG

用法

  1. 安装依赖
npm install git+ssh://git@gitlab.mokahr.com:TryMoka/moka-email#v0.11.26
  1. 跑国际化(首次启动前需要跑国际化)
npm run lingui:extract
npm run lingui:compile
  1. 启动
npm run dev

使用场景I:使用邮件组件在前端展示

邮件组件位于lib/toXXX/目录下,需要按如下方式引入(这样可以确保只打包需要的js)

import CancelInterviewEmail from 'moka-email/lib/toApplication/CancelInterviewEmail';

<CancelInterviewEmail
  application={application}
  hr={hr}
/>

使用场景II:指定使用某个邮件组件(不渲染,例如告诉消息网关要发送哪个邮件)

import { TO_APPLICATION_INTERVIEW_SATISFACTION_EMAIL } from 'moka-email/emails';

sendEmail({ emailKey: TO_APPLICATION_INTERVIEW_SATISFACTION_EMAIL, emailProps });

使用场景III:在后端渲染邮件

import { renderEmail } from 'moka-email/ssr';
import { TO_APPLICATION_INTERVIEW_SATISFACTION_EMAIL } from 'moka-email/emails';

const html = renderEmail({
  emailKey: TO_APPLICATION_INTERVIEW_SATISFACTION_EMAIL,
  locale,
  props,
});

开发相关

如何查看邮件版本?

build之后的emails.js里有version信息,此外渲染出来的邮件的某个table标签里隐藏了一个class name(比如叫moka-email-0.5.7),标记了该邮件的版本。

一些约定

  1. 邮件组件位于lib/toXXXX/目录下,例如toApplication,表示发送给申请候选人的邮件。添加邮件组件时,请务必遵从这个约定。
  2. 邮件组件的名称必须以Email结尾,例如XXXXXEmail.js,非Email结尾的文件将不会被识别为邮件组件。
  3. 所有邮件必须有对应的markdown文档(与组件同名的.md文件)

如何开发

邮件很特殊,只能使用传统的table结构布局,只能使用inline style,此外还有其他诸多限制,不同邮件客户端的支持情况也不一样.一个经验法则是,如果outlook显示没有问题了,那应该就没有问题了(就像兼容IE那样)。有许多邮件html validator,比如这个

common目录下有若干已经定义好的基本组件,禁止在邮件中直接出现div,p,table等tag,请使用common组件.

开发过程中,可以执行npm run dev实时看到邮件组件的渲染样式。

执行npm run test跑UT(如果UT失败,请确认是否正常,如果是正常改动,则可以执行 npm run test -- -u 修复snapshot)

新feature禁止直接向master push,必须走PR。

如何添加国际化的翻译

  1. 执行npm run lingui:extract提取最新的待翻译文本
  2. 找到src/locales/message.csv文件,补充翻译文本
  3. 执行npm run lingui:compile编译翻译文本

如何发布

  1. 执行npm run test确保UT通过

  2. 整理上个版本至今的所有PR,更新CHANGELOG.md

  3. 运行npm run pre-release, 生成pre-release的mr

  4. 再把mr合并进master后, 运行npm run release

改动了邮件内容如何测试

有两种测试邮件的方法,一种是本地发邮件出去看看效果,另一种是发布测试包然后更新pigeon依赖

本地发邮件:
  1. 在项目根目录下新建一个config.mailer.json的json文件,文件内容如下:
{
  "email": "your@email.address",
  "password": "your email password"
}

目前仅支持腾讯企业邮箱

  1. npm run dev然后在每个邮件下方有一个“发送测试邮件”,点击即可发送

具体逻辑是用配置中的账号密码登录,然后向该邮箱发送测试邮件

发布测试包
  1. 执行npm run release-test发布一个测试版本,脚本执行结束后会在屏幕中打印出测试版本的安装路径,记下这个,例如:
测试版本发布完成,可以使用如下方式安装测试依赖
npm install git+ssh://git@gitlab.mokahr.com:TryMoka/moka-email#v0.11.26
  1. 把测试版本的安装地址告诉pigeon的维护者,让他更新pigeon依赖的moka-email(staging环境的pigeon)

  2. staging环境的pigeon更新完成后,就可以测试了

Roadmap

  1. 去掉邮件中的链接拼接,改为从外部直传(每周少量更改便于回归)
  2. 去掉邮件中依赖的第三方常量(每周少量更改便于回归)
  3. 优化部署脚本,现在脚本不是原子的,中间某个步骤失败会导致部署一半(比如tag打上了,但是没有push上去之类的)

FAQs

Package last updated on 23 Dec 2020

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc