python自动化调用邮箱向qq邮箱发送邮件案例

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


**注意下面**
如果有车载讨论需要的小伙伴,可以私信加我微信,拉你进群,和同行业大佬交流
**注意上面**

前言

提示:这里可以添加本文要记录的大概内容:

最近由于有邮箱自动化的需要,所以调试了下自动化发送邮件给qq邮箱,中间出了一些问题,今天特此记录下相关问题点,防止后续忘记


提示:以下是本篇文章正文内容,下面案例可供参考

一、开发过程中的问题点

完成整体代码只花了个把小时,debug问题,几乎花了我一天的时间,给qq邮箱发邮件,一发就被识为垃圾邮件,总是找不到原因,最终在查QQ邮箱的相关邮件规则时找到了原因,(配置邮件内容时,相关信息一定要是utf-8编码的,否则会被识别为垃圾邮件

二、具体代码

代码如下(示例):

import imaplib
import os
import re
import smtplib
from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart
from email.header import Header
from bs4 import BeautifulSoup
import requests

def send_mail(username,password):
    # 收件人邮箱
    email_send = 'xxx@163.com.cn'
    url_info = analysis_html()
    # 邮件内容
    message = MIMEMultipart()
    message.attach(MIMEText(url_info, 'plain', 'utf-8'))
    att1 = MIMEText(open(url_info, 'rb').read(), 'base64', 'utf-8')
    att1["Content-Type"] = 'application/octet-stream'
    att1["Content-Disposition"] = f'attachment; filename="{url_info}"'  # 设置文件名称
    message['From'] = Header("github信息同步", 'utf-8')
    message['To'] = Header("chengjun", 'utf-8')
    message['Subject'] = Header('每日web链接同步', 'utf-8')
    message.attach(att1)
    # try:
    smtpObj = smtplib.SMTP_SSL('smtp.163.com', 587)
    smtpObj.login(username, password)
    smtpObj.sendmail(username, email_send, message.as_string())
    print("邮件发送成功")
    # except smtplib.SMTPException:
    #     print("Error: 无法发送邮件")

def analysis_html():
    url ='https://github.com/xxxx'
    url_info = ""
    response = requests.get(url,timeout=50)
    html_content = response.text
    soup = BeautifulSoup(html_content, 'lxml')
    content_elements = soup.find_all('script', type='application/json')
    data = re.search("data-snippet-clipboard-copy-content=\\\\\"(.+?)notranslate",content_elements[2].text)
    data_list = data.group(1).split(' ')
    for data in data_list:
        if re.search("://",data):
            url_info +=data.strip("\\\\n")+"\n"

    with open("url_data.txt","w+",encoding="utf-8") as file:
        file.write(url_info)
    file_path = os.getcwd()+"\\url_data.txt"
    return file_path


# 示例用法
if __name__ == '__main__':

    username = "xxx@163.com"
    password = "xxxxx"
    send_mail(username,password)

    # analysis_html()


总结

我是一名车载自动化测试开发工程师,希望能和志同道合的朋友一起相互学习进步

  • 7
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值