前言
之前本博客有介绍过几种搭建自有域名的邮局功能《分享自定义邮箱当临时邮箱的几种方法》,免费提供服务的QQ邮箱的域名邮箱,阿里云的企业邮箱,但现在都不免费了,也介绍过forsaken-mail自建邮局的方式,但要求有服务器和服务商要开放25端口,门槛还是有点高,今天介绍一种人人都能玩的方法。
原理
主要利用的是CloudFlare域名提供的电子邮件路由功能,配合Gmail实现收发,从面达到无限账号的域名邮局服务,可以当成临时邮箱使用。
要求
1,CloudFlare有一域名
2,gmail邮箱
过程
主要分两个过程,一个接收,一个发送。
接收
第一步,在CloudFlare上进入对应的域名
点击电子邮件——电子邮件路由——开始使用
添加自定义地址和目标位置—创建并继续,要多少自己创建多少
第二步,验证邮箱
登录你的谷歌邮箱,会有一封验证邮件,证明你目标邮箱是你自己的
点击Verify email address,完成验证
第三步,添加DNS记录
回到CloudFlare后台
可以看到已经准备好了,我们只要点击“添加记录并启用”,就能自动完成DNS记录的操作了
可以看到我的一个域名邮箱已经完成了,你需要多少账号,就在自定义地址添加便可,会统一转发到目标 地址,即是可以N对1。
第四步,测试
可以成功接收到邮件。
至此:域名邮箱的接收功能已完成
谷歌发送
如果你只是接收邮件,这一步可以不需要理会了,如果你也有发送邮件的需求,那接着下接的步骤。
利用的是Gmail SMTP Server,提示免费的发送电子邮件服务,不限制域名,每天可使用500封发送Email服务
第一步,添加其他电子邮件地址
设置——账号和导入——添加其他电子邮件地址
名称:就是你发邮件给别人显示的名称
电子邮件地址:就是你希望对方接收到你邮件时显示的地址,我使用上面的[email protected]
第二步,设置STMP
SMTP服务器:smtp.gmail.com
用户名:你谷歌邮箱地址
密码:你谷歌密码(应用专用密码)
TLS:是
如何获取应用专用密码?
1.首先在获取应用专用密码之前您需要为Google账号开启两步验证.
2.通过网址:myaccount.google.com/apppasswords进入到应用专用密码设置页面,为本次需要设置的应用专用密码设置一个名称,然后点击”创建“按钮。
我这里不成功,以下错误提示
身份验证失败。请检查您的用户名/密码。 服务器返回错误: “535-5.7.8 Username and Password not accepted. Learn more at 535 5.7.8 https://support.google.com/mail/?p=BadCredentials em9-20020a17090b014900b002612150d958sm9709788pjb.16 – gsmtp , code: 535″
解决办法
添加两步认证,使用专用密码登录
生成专用密码
设置——账号和导入——更改账号设置——“更改密码”为专用密码
这里把邮箱的密码改成了专用密码
第三步,验证邮箱地址
验证邮件,这时候由于我们接收那一步已经设置了邮件转了到gmail.所以直接在gmail收件箱就能查看到[email protected]的验证邮件或者验证码。
第四步,测试
测试域名邮箱地址发送
发送时候选择域名邮箱作为发件人,接收端显示也是域名邮箱的地址
至此:发件人也用上了域名邮箱地址了
resend 发邮件
使用邮箱发送邮件,我使用的服务是resend.com,这也是一个免费的服务。没有账号的话就自己注册一个。
选择左侧的API Keys,点击create API Key,名字随便填一个,下面两个保持默认,点击添加。
就会获得一个API Key,把它保存好。这里有一个域名,我们需要把域名也添加到这个网站上,就是刚才托管到Cloudflare的那个域名。
好,这一步是重点。这里给了3个DNS记录,我们需要把这个记录填回Cloudflare
回到cloudflare
我们回到resend,有一个按钮verify DNS records,我们点击一下,它检查我们刚才的配置是否正确。等校验完,页面标成绿色,那就配置完成了。
使用Python发邮件
# 先安装依赖
# pip install resend
import resend
# 这里换成自己的resend API Key
resend.api_key = "re_xxxxxxxxxxxxxxxxxxxxxxx"
params: resend.Emails.SendParams = {
# 发件人可以是自己域名下的任何一个人
"from": "sdkjfskdhf@你的域名",
"to": ["[email protected]"],
"subject": "hi",
"html": "<strong>hello, world!</strong>"
}
email = resend.Emails.send(params)
print(email)
使用cURL发邮件
Authorization 换成自己的resend API Key
发件人可以是自己域名下的任何一个人
curl -X POST 'https://api.resend.com/emails' \
-H 'Authorization: Bearer re_VxeNCEn1_6w4bYF93xQKgKGFYRxNK2D3J' \
-H 'Content-Type: application/json' \
-d $'{
"from": "Acme <onboarding@你的域名>",
"to": ["[email protected]"],
"subject": "hello world",
"text": "it works!"
}'
总结
这个方法,一来不需要部署服务器,二来比临时邮箱更多了永久能接收邮件;综合来看,这种方式实现域名邮箱,比部署forsaken-mail更优方案,只要一个域名就能拥有无限个邮箱,非常适合自己需要多邮箱地址的应用场景。比如无限注册ChatGPT。。