zhulink logo
自动夜间模式 日间模式 夜间模式
侧栏
0
意外富翁
|
|
|

用过 CloudFlare 的都知道,他家的 mail 服务是可以将接收到的邮件转发到指定邮箱用来实现域名邮箱的收件服务的,但是这种方式只可以接收,不能发送邮件。 偶然间看到一个开源项目,实现了使用域名部署临时邮箱,研究了一下发现,发件服务使用的是 CloudFlare 的 Worker 实现的,个人能力有限,网上搜索了一番,总结了几篇文章的教程,成功的实现了域名邮箱的发件。 ## 绑定域名 首先需要将域名绑定到 CloudFlare 上,这一步想必不用多说了吧,会的都会。 ## 启用电子邮件路由 官方教程:[https://developers.cloudflare.com/email-routing/get-started/enable-email-routing/](https://developers.cloudflare.com/email-routing/get-started/enable-email-routing/) 1、进入 CloudFlare 控制台,选择网站,找到你想要添加域名邮箱的域名,点击进入 ![图片alt](https://cdn.wangtwothree.com/imgur/YXdNvGk.png) 2、点击侧边栏 电子邮件》电子邮件路由,然后点击开始使用 ![图片alt](https://cdn.wangtwothree.com/imgur/PfdSqPf.png) 3、设置域名邮箱前缀和转发邮箱 ![图片alt](https://cdn.wangtwothree.com/imgur/wVZA4xv.png) 4、验证转发邮箱,我这里直接用的登录 CloudFlare 的邮箱,直接显示已验证 ![图片alt](https://cdn.wangtwothree.com/imgur/XBDOjBC.png) 5、添加解析记录 ![图片alt](https://cdn.wangtwothree.com/imgur/6hfjnru.png) ## 创建 Worker Work 代码从这里复制即可:[https://gist.github.com/ihsangan/6111b59b9a7b022b5897d28d8454ad8d](https://gist.github.com/ihsangan/6111b59b9a7b022b5897d28d8454ad8d) 直接粘贴部署,一气呵成,不需要修改什么 ## 准备 DKIM 私钥(可选,非必须) DKIM 是一种电子邮件认证技术,可以验证邮件的发送者身份。 在终端执行下面的命令,生成 DKIM 私钥,参考 [Adding-a-DKIM-Signature](https://support.mailchannels.com/hc/en-us/articles/7122849237389-Adding-a-DKIM-Signature): ``` openssl genrsa 2048 | tee private_key.pem | openssl rsa -outform der | openssl base64 -A > private_key.txt echo -n "v=DKIM1;p=" > dkim_record.txt && openssl rsa -in private_key.pem -pubout -outform der | openssl base64 -A >> dkim_record.txt ``` 这两条命令会生成 3 个文件: - private_key.pem:私钥文件 - private_key.txt:私钥文件,base64 编码 - dkim_record.txt:DKIM 记录 其中 private_key.txt 文件中的内容就是 DKIM_PRIVATE_KEY 的值,如果想要配置的话,发件的时候需要这个值。 ## 配置域名解析 1、进入 Cloudflare 托管域名控制台,选择你的域名 -> 点击 DNS,接下来,需要添加 3 条 TXT 记录并修改 1 条 TXT 记录 ![图片alt](https://cdn.wangtwothree.com/imgur/J8PrPN4.png) 新增的如下: |类型|名称|值|备注| | -- | -- | -- | -- | |TXT|`_dmarc`|`v=DMARC1; p=reject; adkim=s; aspf=s; rua=mailto:YYY; ruf=mailto:YYY pct=100; fo=1;`|固定值,直接粘贴| |TXT|`mailchannels._domainkey`|`v=DKIM1;p=MIIEpQIBAAKCAQEA...`|这一条可以不配置,值为上一步 dkim_record.txt 文件的内容| |TXT|`_mailchannels`|`v=mc1 cfid=yesmore.workers.dev`|将其中的 yesmore 修改为你的 Worker 账号名称,不知道的可以参考下边截图| ![图片alt](https://cdn.wangtwothree.com/imgur/xD5QlMG.png) 需要修改的如下(TXT记录值为 example.com 即你的域名的那条): |类型|名称|值|备注| | -- | -- | -- | -- | |TXT|example.com|`v=spf1 include:_spf.mx.cloudflare.net include:relay.mailchannels.net ~all `|把值替换为这个| 最后一共 4 条 TXT 记录: ![图片alt](https://cdn.wangtwothree.com/imgur/CmC8zc4.png) 如果配置了 DKIM,可以在 [dkim-record-checker](https://dmarcly.com/tools/dkim-record-checker) 验证 DKIM 记录是否配置成功。 ## 验证发送 方法一:打开网页 `https://..workers.dev/submit` 根据表单填写内容吗,验证是否可以正常发送 ![图片alt](https://cdn.wangtwothree.com/imgur/hf65o89.png) 方法二:使用 API 发送 请求地址 `https://..workers.dev` 请求方法 POST 请求体: ``` { "from": { "email": "[email protected]", "name": "发送者" }, "personalizations": [ { "to": [ { "email": "[email protected]", "name": "接收者" } ] } ], "subject": "邮件标题", "content": [ { "type": "text/plain", "value": "邮件内容" } ] } ``` 成功的话会返回一个 null,失败的话会返回报错信息,根据报错信息 google 一下 ![图片alt](https://cdn.wangtwothree.com/imgur/WsJTlpj.png)

▲ 赞同(0)    ★ 收藏(0)