# email **Repository Path**: eq361/email ## Basic Information - **Project Name**: email - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2019-08-02 - **Last Updated**: 2020-12-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README 1. 电子邮件的历史 2. 发送邮件涉及到的协议 3. 一个完整的邮件发送流程 4. 快速开发邮件发送服务 5. 发送文本、HTML、附件、图片的邮件 6. 做一个邮件系统需要考虑的因素 应用场景 用户注册、忘记密码、监控提醒、企业营销等 邮件系统的话还需要考虑以下几方面: * 对外提供发送邮件的服务接口 * 固定格式邮件使用模板 * 发送邮件发生网络错误时,适当的重试机制 * 邮件系统异步化,提升服务响应 消息中间件MQ发送(业务系统 生产,邮件系统 消费) * 是否开发邮件后台管理系统、通过页面发送邮件、统计发送邮件成功率等数据、设置白名单黑名单、用户退订 * 常见异常处理 发送失败 (记录在库,定时任务扫描) * 接收到发送邮件请求,首先记录请求并且入库 * 调用邮件发送接口发送邮件,并且将发送结果记录入库 * 启动定时系统扫描时间段内,未发送成功并且重试次数小于 3 次的邮件,进行再次发送 * 重新发送邮件的时间,建议以 2 的次方间隔时间,如 2、4、8、16… 常见的错误返回码 * 421 HL:ICC 该 IP 同时并发连接数过大,超过了网易的限制,被临时禁止连接 * 451 Requested mail action not taken: too much fail authentication 登录失败次数过多,被临时禁止登录,请检查密码与帐号验证设置 * 553 authentication is required,密码配置不正确 * 554 DT:SPM 发送的邮件内容包含了未被许可的信息,或被系统识别为垃圾邮件,请检查是否有用户发送病毒或者垃圾邮件 * 550 Invalid User 请求的用户不存在 * 554 MI:STC 发件人当天内累计邮件数量超过限制,当天不再接收该发件人的投信(发多了) 邮箱发送失败重试机制、防止邮件被识别为垃圾邮件、固定时间内发送邮件的限制