markdown格式发送邮件

python,文本文档以markdown格式写,并保存markdown格式

import os
import io

# 定义Markdown文本
text = """
# Hello
This is a **markdown** file.
- Item 1
- Item 2
"""
# 将Markdown文本写入文件
with io.open('example.md', 'w', encoding='utf-8') as f:
    f.write(text)
# 打印Markdown文件内容
with io.open('example.md', 'r', encoding='utf-8') as f:
    print(f.read())

读取markdown 格式的文件,将文件转为html格式;

import markdown
# 读取Markdown文件
with open('D:\example.md', 'r', encoding='utf-8') as f:
    markdown_text = f.read()
# 将Markdown转换为HTML
html_text = markdown.markdown(markdown_text)
print(html_text)
# 写入HTML文件
# with open('example.html', 'w', encoding='utf-8') as f:
#     f.write(html_text)

发送邮件html格式

在邮件中,如果要以 Markdown 格式显示内容,需要在邮件正文中设置 Content-Type 为 text/markdown,并将 Markdown 格式的内容转换为 HTML 格式后再作为邮件正文内容。
以下是一个示例代码,展示如何以 Markdown 格式在邮件中显示内容:


import smtplib
from email.mime.text import MIMEText
# 配置邮件内容
msg = MIMEText('<html><body><h1>Hello World!</h1></body></html>', 'html')
msg['From'] = 'sender@example.com'
msg['To'] = 'receiver@example.com'
msg['Subject'] = 'HTML Format Test'
# 发送邮件
with smtplib.SMTP('smtp.example.com', 587) as smtp:
    smtp.login('username', 'password')
    smtp.sendmail('sender@example.com', 'receiver@example.com', msg.as_string())

完整发送邮件 markdown格式

import smtplib
import markdown
from email.mime.text import MIMEText
# 定义Markdown格式的文本
markdown_text = """
# Hello
This is a **markdown** file.
- Item 1
- Item 2
"""
# 将Markdown转换为HTML
html_text = markdown.markdown(markdown_text)
# 配置邮件内容
msg = MIMEText(html_text, 'html')
msg['From'] = 'sender@example.com'
msg['To'] = 'receiver@example.com'
msg['Subject'] = 'Markdown Format Test'
# 设置Content-Type为text/markdown
msg.replace_header('Content-Type', 'text/markdown')
# 发送邮件
with smtplib.SMTP('smtp.example.com', 587) as smtp:
    smtp.login('username', 'password')
    smtp.sendmail('sender@example.com', 'receiver@example.com', msg.as_string())

以上代码将 Markdown 格式的文本转换为 HTML 格式,然后使用 MIMEText 类创建一个邮件对象,并将 HTML 格式的内容传递给 MIMEText 类的构造函数,设置 Content-Type 为 text/markdown,使用 SMTP 协议发送邮件。需要注意的是,在邮件中显示 Markdown 格式的内容需要将其转换为 HTML 格式。


  目录