这篇文章在 2023年10月26日19:18:20 更新了哦~
先说说一些收邮件的方法吧
收邮件 – Email Forwarding
收邮件的话,最简单的办法就是去注册商哪里设置一个Email Forwarding,比如namesilo中可以这样设置:
等几分钟生效,发给 benny@dmesg.app 的邮件就会被转发给我的Gmail啦。
收邮件 – 自建
也可以选择自建,比如说用iRedMail。配置起来是挺麻烦的,但是会让人很有成就感。同时也可以发邮件了。缺点就是有很多时候会被当成SPAM,需要进一步设置DKIM呀什么的。
收邮件 – 企业邮箱
比如用Gsuite啦,腾讯企业邮箱啦,都很容易,改个MX就行。
发邮件
发邮件相比之下就要麻烦点了,可选的方案有自建、企业邮箱。还有就是可以让riseup帮忙发!当然啦,用Gmail也是可以的。
用riseup发邮件的话,需要先让你的邮箱能够收到邮件,无论你是通过Email Forwarding还是企业邮箱,总之要能收到邮件。
然后设置alias,在这个页面中 https://account.riseup.net/mail/aliases
确认邮箱并且已经生效之后,之后去邮箱的identities里添加一下这个邮箱
然后在riseup的web页面就可以用这个邮箱发邮件啦
想要用代码来解决的话,也很简单,Python的话直接用自带的smtplib就可以了
from_addr
就是加的那个alias,别想着加一个 tencent@qq.com,不行的(这种情况倒是可以用mailhog自娱自乐)。
import os import smtplib from email.header import Header from email.mime.text import MIMEText from email.utils import formataddr, parseaddr def _format_addr(s): name, addr = parseaddr(s) return formataddr((Header(name, 'utf-8').encode(), addr)) def send_mail(to: str, subject: str, body: str): user = os.getenv("email_user") password = os.getenv("email_password") host = os.getenv("email_host") or "localhost" port = os.getenv("email_port") or "1025" # mailhog from_addr = os.getenv("from_addr") or "yyets@dmesg.app" msg = MIMEText(body, 'html', 'utf-8') msg['From'] = _format_addr('YYeTs <%s>' % from_addr) msg['To'] = _format_addr(to) msg['Subject'] = Header(subject, 'utf-8').encode() if port == "1025": server = smtplib.SMTP(host, port) else: server = smtplib.SMTP_SSL(host, port) server.login(user, password) server.sendmail(from_addr, [to], msg.as_string()) server.quit() if __name__ == '__main__': send_mail("benny.think@gmail.com", "subj", 'aaaa<br>bbb')