利用CloudFlare+Gmail或resend 实现自有域名临时邮箱服务,无需服务器

前言

之前本博客有介绍过几种搭建自有域名的邮局功能《分享自定义邮箱当临时邮箱的几种方法》,免费提供服务的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。。

发表评论

您的邮箱地址不会被公开。 必填项已用 * 标注

滚动至顶部