自定义域名邮箱绑定CloudFlare后只能接收邮件不能发送邮件的解决方案

自定义域名邮箱绑定CloudFlare后只能接收邮件不能发送邮件的解决方案

2023-11-14
暂无分类

最近搭建了一个邮箱服务器,用着倒是挺舒服的,就是感觉有点吃力不讨好。主要是因为我不需要太多前缀,有那么一两个就够了,常用的[email protected][email protected][email protected]。想想办法,看能不能找个免费的邮件收发服务,且支持自定义域名。这样我就不用自己搭建了,省去了不少麻烦。

最终找到一套完美的方案:

  1. CloudFlare收邮件
  2. Gmail发邮件

用CloudFlare收邮件很简单,重点讲讲怎么用Gmail发送自定义域名邮件

第一步:申请Google应用专用密码

登陆Google账号--->账号管理--->安全性--->两步验证--->应用专用密码,名字可以写成你这个专用密码的具体用途,比如:Gmail自定义域名邮箱example.com专用密码

点击创建,会给你一个16位的密码,只显示一次,保存起来方便以后用。密码中间的空格不要删除

第二步:添加自定义域名邮箱

进入谷歌邮箱--->点击设置--->查看所有设置--->账号和导入--->添加其他电子邮件发件地址

电子邮件地址一栏填写自定义域名邮箱,比如[email protected],名称随便填

这一步很重要,用户名填Gmail邮箱,密码填上一步申请的应用专用密码,其他的照搬

去收件箱点一下验证链接才能绑定成功

第三步:测试

方式一:可以直接用Gmail网页端或App端发送邮件

方式二:某些情况下需要用代码发邮件,比如向网站的注册用户发送验证码,我用Python做个演示

import smtplib
from email.utils import formatdate

# 邮件服务器
smtp_server = 'smtp.gmail.com'
smtp_port = 587
smtp_username = '[email protected]' # 谷歌邮箱账号
smtp_password = '应用专用密码' # 上面申请的应用专用密码

recipient_list = ['[email protected]'] # 收件人邮箱

# 邮件内容配置
sender_email = "[email protected]" # 绑定成功的自定义域名邮箱
sender_name = "发件人姓名"
subject = '邮件主题'
content = '正文'

# 构造邮件消息
def generate_message(recipient_address):
    return f'''
Date: {formatdate(localtime=True, usegmt=True)}
From: "{sender_name}" <{sender_email}>
To: {recipient_address}
Subject: {subject}
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: bit8

{content}
'''.strip()

# 发送邮件
with smtplib.SMTP(smtp_server, smtp_port) as smtp:
    smtp.starttls()
    smtp.login(smtp_username, smtp_password)
    for recipient_address in recipient_list:
        print(generate_message(recipient_address))
        smtp.sendmail(sender_email, recipient_address, generate_message(recipient_address).encode('utf-8'))

注意:一个Gmail账号,每天最多只能发送500封邮件

后续更新(2023年11月16日)

  1. mail-tester测试只有4.5分
  2. 发出去的邮件会被标记“由gmail代发”
  3. 可以在收件人的邮件头看到原始“gmail邮箱”,造成信息泄漏的风险

新的方案:

  1. 飞书企业版绑定域名邮箱。唯一缺点:不能catch-all。
  2. skiff,只能用skiff收发邮件,免费版不能catch-all
  3. cloudflare(catch-all,可以接收任意前缀的邮件)+smtp2go(send-all,可以用任意前缀发邮件)。免费额度:每个月1000封
THE END
0/500
暂无评论