腾讯企业邮箱第三方服务
前言
前言:早就想使用第三方服务收发邮件,一直找不到入口,直到他发了这么一个邮箱:

我们得去企业微信网页版https://exmail.qq.com/
去配置SMT/POP的服务
工作流配置
ps:大概率不能正确格式渲染,就让show了~
```graph TD;
TEMP_DAY(日报模板)
TEMP_WEEK(周报模板)
DAY(日报)
WEEK(周报)
ENGINE(基于模板引擎的自研OA引擎)
MKDOCS(基于mkdocs+node的文档引擎)
WEB(WEB日报服务)
TEMP_DAY --填入日报内容→ ENGINE →DAY
TEMP_WEEK →ENGINE → WEEK
WEEK --PANDOC打包→ HTML文件 → HTML邮件
SMTP服务器 --代理微信企业邮 →HTML邮件
MKDOCS → WEB
DAY --热更新→WEB
| ### 企业邮箱的配置:
**POP3/SMTP协议**
- 接收邮件服务器:pop.exmail.qq.com ,使用SSL,端口号995
- 发送邮件服务器:smtp.exmail.qq.com ,使用SSL,端口号465
**IMAP协议**
- 接收邮件服务器:imap.exmail.qq.com ,使用SSL,端口号993
- 发送邮件服务器:smtp.exmail.qq.com ,使用SSL,端口号465
**账户名**:您的企业邮箱账户名,账户名需要填写完整的邮件地址
**密码**:您的企业邮箱密码(如邮箱已开启安全登录需要使用客户端专
用密码:[如何获取客户端专用密码](https://open.work.weixin.qq.com/help2/pc/19902?person_id=1))
**电子邮件地址**:企业邮箱完整邮件地址。
我们使用python构建一个第三方服务:
```python
#!/usr/bin/python
# -*- coding: UTF-8 -*-
# 利用第三方SMTP服务发送邮件 这里用的是微信企业邮
import smtplib
from email.mime.text import MIMEText
from email.utils import formataddr
import subprocess
my_sender='sx_dancehole@canway.net' # 发件人邮箱账号
my_name = '邓仕昊[sx_dancehole]'
my_pass = '..' # 发件人邮箱密码
server_ip = 'smtp.exmail.qq.com'
server_port = 465
dst_name = '林梓越'
my_receiver='sx_dancehole@canway.net' # 收件人邮箱账号
my_title = '第4周周报' # 周数要读取config.json,来自日报引擎记录的
command = ['D:\\Software\\pandoc\\pandoc.exe', 'test.md', '-o', 'test.html']
try:
result = subprocess.run(command, timeout=10) # 设置超时时间为10秒
if result.returncode == 0:
print("Pandoc conversion successful.")
else:
print(f"Pandoc conversion failed with return code: {result.returncode}")
except subprocess.TimeoutExpired:
print("Pandoc command timed out.")
with open('test.html', 'r', encoding='utf-8') as f:
my_msg_content = f.read()
def mail():
ret=True
try:
msg=MIMEText(my_msg_content,'html','utf-8')
# msg=MIMEText(my_msg_content,'plain','utf-8')
msg['From']=formataddr([my_name,my_sender]) # 括号里的对应发件人邮箱昵称、发件人邮箱账号
msg['To']=formataddr([dst_name,my_receiver],["dsh","1391755954@qq.com"]) # 括号里的对应收件人邮箱昵称、收件人邮箱账号,顺带给自己抄送一份
msg['Subject']=my_title # 邮件的主题,也可以说是标题
server=smtplib.SMTP_SSL(server_ip,server_port) # 发件人邮箱中的SMTP服务器
server.login(my_sender, my_pass) # 括号中对应的是发件人邮箱账号、邮箱密码
server.sendmail(my_sender,[my_receiver,],msg.as_string()) # 括号中对应的是发件人邮箱账号、收件人邮箱账号、发送邮件
server.quit() # 关闭连接
except Exception: # 如果 try 中的语句没有执行,则会执行下面的 ret=False
ret=False
return ret
# ret=mail()
ret = False
if ret:
print("邮件发送成功")
else:
print("邮件发送失败")
|
参考文献¶
全网最详细的Python自动化测试+邮件推送+企业微信推送+Jenkins_测试消息推送-CSDN博客
Python之smtpd及smtplib(邮件服务器及客户端)_python 邮件服务器-CSDN博客