跳转至

腾讯企业邮箱第三方服务

前言

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

image-20240529155912259

我们得去企业微信网页版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博客