精华内容
下载资源
问答
  • 今天试了一下用python自动发送邮件,已经成功。前期设置在发送邮件前,先要去腾讯企业邮箱设置一下:获取到授权码。步骤为:1.打开企业邮箱,点击设置-》安全2.关联微信3.启用客户端专用密码,然后复制那个授权权...

    今天试了一下用python自动发送邮件,已经成功。

    前期设置

    在发送邮件前,先要去腾讯企业邮箱设置一下:获取到授权码。

    步骤为:

    1.打开企业邮箱,点击设置-》安全

    2.关联微信

    3.启用客户端专用密码,然后复制那个授权权

    代码:

    import smtplib

    from email.mime.text import MIMEText

    from email.header import Header

    from datetime import datetime

    # 用户信息

    Sender = 'sender@XXX.com'

    password = 'XXXXX' # 腾讯QQ邮箱或腾讯企业邮箱必须使用授权码进行第三方登陆

    Receiver = 'receiver@XXX.com'

    smtp_server = 'smtp.exmail.qq.com' # 腾讯服务器地址

    #邮件内容为此时时间

    now = datetime.now()

    str_text = now.strftime('%Y-%m-%d  %H:%M:%S')

    # 邮件的其它设置三个参数:第一个为文本内容,第二个 plain 设置文本格式,第三个 utf-8 设置编码

    msg = MIMEText(str_text, 'plain', 'utf-8')

    msg['Subject'] = 'Python 邮件发送测试'

    msg['from'] = Sender  # 设置发送人

    msg['to'] = Receiver  # 设置接收人

    #邮箱配置&发送

    smtp = smtplib.SMTP(smtp_server,25)

    smtp.login(Sender, password)

    smtp.sendmail(Sender,Receiver, msg.as_string())

    smtp.quit()

    print('OK!')

    其它

    如果要用SSL方式登录邮件,把smtp = smtplib.SMTP(smtp_server,25) 改为smtp = smtplib.SMTP_SSL(smtp_server,465)

    展开全文
  • Python SMTP发送邮件 SMTP(Simple Mail Transfer Protocol),简单的邮件传输协议。他是一组用于从源地址到目的地址传输邮件的规范,通过它来控制邮件的中转方式。SMTP协议属于 TCP/IP 协议簇,它帮组每台计算机再...

    Python SMTP发送邮件

    • SMTP(Simple Mail Transfer Protocol),简单的邮件传输协议。他是一组用于从源地址到目的地址传输邮件的规范,通过它来控制邮件的中转方式。SMTP协议属于 TCP/IP 协议簇,它帮组每台计算机再送中转信件时找到下一个目的地。SMTP服务器遵循 SMTP 协议的发送邮件服务器

    开启SMTP

    • 这里我们以QQ邮箱为例,我们在邮箱设置 - 账户中找到开启服务,然后点击开启STMP
    • 然后设置一下客户端授权码
    • 发短信开启

    在这里插入图片描述
    然后我们可以通过python实现邮件发送了,下面是一个简单的例子

    #! /usr/bin/python3
    # -*- coding: UTF-8 -*-
    
    import smtplib
    import time
    from email.mime.text import MIMEText
    from email.header import Header
    
    
    class TestMail(object):
    
        def __init__(self):
            self.mail_host = "smtp.qq.com"
            self.mail_user = "xxxxx@qq.com"
            self.mail_pass = ""  # 这里是QQ客户端授权密码
    
            self.sender = 'xxxxx@163.com' 
            self.receivers = ''
    
        def send_mail(self):
            body = 'Dear all:\n接口自动化测试报告如下:\n   测试用例集合:{}\n   运行结果:{}'.format('xxxx', 'xxxx')
            tm = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime(time.time()))
            message = MIMEText(body, 'plain', 'utf-8')
            message['From'] = self.mail_user
            message['To'] = self.receivers
    
            subject = '接口自动化报告测试'
            message['Subject'] = Header(subject + '_' + tm, 'utf-8')
    
            try:
                smtpObj = smtplib.SMTP()
                smtpObj = smtplib.SMTP_SSL(self.mail_host, 465)
                smtpObj.login(self.mail_user, self.mail_pass)
                smtpObj.sendmail(self.sender, self.receivers, message.as_string())
                print('send mail ok')
            except smtplib.SMTPException:
                print('send mail fail')
    
    
    if __name__ == "__main__":
        send = TestMail()
        send.send_mail()
    
    
    • 然后通常在项目中,我们都是把邮箱的发送者和接受者以及一些邮件信息,单独放在config.yaml或者config.ini文件中进行配置化,下面我们来看看如何读取文件配置

    读取配置

    #! /usr/bin/python3
    # -*- coding: UTF-8 -*-
    
    [mail]
    #发送邮件信息
    mail_host = smtp.qq.com
    mail_user = xxx@qq.com
    mail_pass =            # 163客户端授权密码
    
    sender = @qq.com
    receivers = 
    
    
    • 读取配置
    #! /usr/bin/python3
    # -*- coding: UTF-8 -*-
    
    import smtplib
    import time
    from pathlib import Path
    from email.mime.text import MIMEText
    from email.header import Header
    
    from configparser import ConfigParser
    
    
    class TestMail(object):
    
        def __init__(self):
            self.config = ConfigParser()
            self.conf_path = str(Path('config.ini').absolute())  # 读取绝对路径
    
            self.config.read(self.conf_path, encoding='utf-8')
    
        def send_mail(self):
            body = 'Dear all:\nDEMO 接口自动化测试报告:\n   测试用例集合:{}\n   运行结果:{}'.format('xxxx', 'xxxx')
            tm = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime(time.time()))
            message = MIMEText(body, 'plain', 'utf-8')
            message['From'] = self.config.get('mail', 'sender')
            message['To'] = self.config.get('mail', 'receivers')
    
            subject = '接口自动化测试报告'
            message['Subject'] = Header(subject + '_' + tm, 'utf-8')
    
            try:
                smtpObj = smtplib.SMTP()
                smtpObj = smtplib.SMTP_SSL(self.config.get('mail', 'mail_host'), 465)
                smtpObj.login(self.config.get('mail', 'mail_user'), self.config.get('mail', 'mail_pass'))
                smtpObj.sendmail(self.config.get('mail', 'sender'), self.config.get('mail', 'receivers'), message.as_string())
                print('send mail ok')
            except smtplib.SMTPException:
                print('send mail fail')
    
    
    if __name__ == "__main__":
        send = TestMail()
        send.send_mail()
    
    

    发送邮件带附件

    • 通常我们发邮件有时会需要发送附件,比如测试报告,贴代码
    #! /usr/bin/python3
    # -*- coding: UTF-8 -*-
    
    import os
    import smtplib
    from email.mime.text import MIMEText
    from email.mime.multipart import MIMEMultipart
    from email.header import Header
    
    
    def send_kindle():
        mail_host = "smtp.qq.com"
        mail_user = "@qq.com"
        mail_pass = ""
    
        sender = '@qq.com'
        receivers = '@kindle.cn'
    
        message = MIMEMultipart()
        message['From'] = mail_user
        message['To'] = receivers
        subject = '{}'.format(filename)
        message['Subject'] = Header(subject, 'utf-8')
    
        message.attach(MIMEText('{}'.format(filename), 'plain', 'utf-8'))
    
        att1 = MIMEText(open('/Users/Documents/book/{}'.format(filename), 'rb').read(), 'base64', 'utf-8')
        att1["Content-Type"] = 'application/octet-stream'
        att1["Content-Disposition"] = 'attachment; filename="book.mobi"'
        message.attach(att1)
    
        try:
            smtpObj = smtplib.SMTP_SSL(mail_host, 465)
            smtpObj.login(mail_user, mail_pass)
            smtpObj.sendmail(sender, receivers, message.as_string())
            print("发送成功")
        except smtplib.SMTPException:
            print("Error: 发送失败")
    
    
    if __name__ == '__main__':
        filename = input("请输入您要发送的附件名称")
        os.path.split(filename)
        send_kindle()
    
    
    展开全文
  • day19-邮件自动发送基本流程 1.邮件自动发送基本流程 (1) smtplib - 登陆邮箱,发送邮件 import smtplib from email.mime.multipart import MIMEMultipart from email.header import Header from email.mime.text ...

    day19-邮件自动发送基本流程

    1.邮件自动发送基本流程

    (1) smtplib - 登陆邮箱,发送邮件
    import smtplib
    from email.mime.multipart import MIMEMultipart
    from email.header import Header
    from email.mime.text import MIMEText
    
    # 第一步:登陆邮箱
    # 1. 连接邮箱服务器
    # smtplib.SWTP_SSL(服务器地址,邮箱服务端口)  -  连接邮箱服务器并且返回一个连接对象
    connect = smtplib.SMTP_SSL('smtp.qq.com', 465)
    
    # 2. 登陆邮箱
    # 连接对象.login(账号,密码)
    connect.login('510952517@qq.com', 'simjonndpzitbghj')
    
    # 第二步: 准备邮件
    # 1. 创建邮件对象
    email = MIMEMultipart()
    
    # 2. 设置邮件主题
    # Header(邮件标题,编码方法)
    email['Subject'] = Header('第一次发送邮件', 'utf-8').encode()
    
    # 3. 设置邮件接收者信息(收件人)
    email['To'] = '510952517@qq.com'
    
    # 4. 设置邮件发送人
    email['From'] = '510952517@qq.com <510952517@qq.com>'
    
    
    # 5. 添加正文
    """
    MIMEText(文字内容,类型,编码方式)
    类型   -   plain(普通文字)、html(超文本)
    """
    text = MIMEText('你好吗?吃饭了吗?', 'plain', 'utf-8')
    email.attach(text)
    
    # 第三步: 通过连接发送邮件
    # 连接对象.sendmail(发件人,收件人,邮件对象.as_string())
    connect.sendmail('510952517@qq.com', '510952517@qq.com', email.as_string())
    connect.quit()      # 关闭连接
    

    (2) 发送邮件

    import smtplib
    from email.mime.multipart import MIMEMultipart
    from email.header import Header
    from email.mime.text import MIMEText
    from email.mime.image import MIMEImage
    
    # 1. 登录1
    connect = smtplib.SMTP_SSL('smtp.qq.com', 465)
    connect.login('510952517@qq.com', 'simjonndpzitbghj')
    
    # 2. 准备邮件
    email = MIMEMultipart()
    
    email['Subject'] = Header('发送附件', 'utf-8').encode()
    email['To'] = '510952517@qq.com'
    email['From'] = '510952517@qq.com <510952517@qq.com>'
    
    text = MIMEText('照片在附件中,请注意查收!', 'plain', 'utf-8')
    email.attach(text)
    
    # ===================1. 图片附件=====================
    # 1)打开图片读取图片二进制数据
    image_data = open('files/luffy4.jpg', 'rb').read()
    # 2)创建图片对象
    image = MIMEImage(image_data)
    # 3)设置图片为附件
    image['Content-Disposition'] = 'attachment; filename="luffy.jpg"'
    # 4)将图片附件添加到邮件对象中
    email.attach(image)
    
    # ==================2.其他文件附件====================
    file_data1 = open('files/a.zip', 'rb').read()
    file1 = MIMEText(file_data1, 'base64', 'utf-8')
    file1['Content-Disposition'] = 'attachment; filename="a.zip"'
    email.attach(file1)
    
    file_data2 = open('files/服务能力提供规范.xlsx', 'rb').read()
    file2 = MIMEText(file_data2, 'base64', 'utf-8')
    file2['Content-Disposition'] = 'attachment; filename="data.xlsx"'
    email.attach(file2)
    
    # 3. 发送邮件
    connect.sendmail('510952517@qq.com', '510952517@qq.com', email.as_string())
    connect.quit()
    

    (3) 超文本邮件内容

    import smtplib
    from email.mime.multipart import MIMEMultipart
    from email.header import Header
    from email.mime.text import MIMEText
    from email.mime.image import MIMEImage
    
    connect = smtplib.SMTP_SSL('smtp.qq.com', 465)
    connect.login('510952517@qq.com', 'simjonndpzitbghj')
    
    email = MIMEMultipart()
    email['Subject'] = Header('HTML邮件', 'utf-8').encode()
    email['To'] = '510952517@qq.com'
    email['From'] = '510952517@qq.com <510952517@qq.com>'
    
    # ========================邮件正文=====================
    content = open('files/send.html', encoding='utf-8').read()
    text = MIMEText(content, 'html', 'utf-8')
    email.attach(text)
    
    image_data = open('files/luffy4.jpg', 'rb').read()
    image = MIMEImage(image_data)
    image.add_header('Content-ID', '<image1>')
    email.attach(image)
    
    
    connect.sendmail('510952517@qq.com', '510952517@qq.com', email.as_string())
    connect.quit()
    

    (4) 图片批量发送

    import smtplib
    from email.mime.multipart import MIMEMultipart
    from email.header import Header
    from email.mime.text import MIMEText
    from email.mime.image import MIMEImage
    import os
    
    connect = smtplib.SMTP_SSL('smtp.qq.com', 465)
    connect.login('510952517@qq.com', 'simjonndpzitbghj')
    
    email = MIMEMultipart()
    email['Subject'] = Header('HTML邮件', 'utf-8').encode()
    email['To'] = '510952517@qq.com'
    email['From'] = '510952517@qq.com <510952517@qq.com>'
    
    # ========================邮件正文=====================
    all_images = os.listdir('images')
    ids = []
    for name in all_images:
        image_data = open(f'images/{name}', 'rb').read()
        image = MIMEImage(image_data)
        cid = name.split(".")[0]
        ids.append(cid)
        image.add_header('Content-ID', f'<{cid}>')
        email.attach(image)
    
    send = ''
    for cid in ids:
        send += f'<img src="cid:{cid}" alt=""><br>'
    text = MIMEText(send, 'html', 'utf-8')
    email.attach(text)
    
    
    connect.sendmail('510952517@qq.com', '510952517@qq.com', email.as_string())
    connect.quit()
    
    展开全文
  • java自动发送邮件

    2021-03-07 00:34:29
    我希望邮件在特定时间自动发送.我能够发送邮件,但我不能让它自动完成.谁能告诉我如何自动发送?以下是我发送邮件的代码:public class SendEmail {String d_email = "sofien.fkih@gmail.com",d_password = "",d_host...

    我希望邮件在特定时间自动发送.我能够发送邮件,但我不能让它自动完成.谁能告诉我如何自动发送?以下是我发送邮件的代码:

    public class SendEmail {

    String d_email = "sofien.fkih@gmail.com",

    d_password = "",

    d_host = "smtp.gmail.com",

    d_port = "465",

    m_to = "sofien.fkih@gmail.com",

    m_subject = "Testing",

    m_text = "Hey, this is the testing email.";

    // Those are the values that have the email information

    public void send(String from, String pass, String host, String port, String to, String subject, String text) {

    Properties props = new Properties();

    // Read properties file.

    props.put("mail.smtp.user", from);

    props.put("mail.smtp.host", host);

    props.put("mail.smtp.port", port);

    props.put("mail.smtp.starttls.enable", "true");

    props.put("mail.smtp.auth", "true");

    props.put("mail.smtp.socketFactory.port", port);

    props.put("mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory");

    props.put("mail.smtp.socketFactory.fallback", "false");

    SecurityManager security = System.getSecurityManager();

    try {

    Authenticator auth = new SMTPAuthenticator();

    Session session = Session.getInstance(props, auth);

    MimeMessage msg = new MimeMessage(session);

    msg.setText(text);

    msg.setSubject(subject);

    msg.setFrom(new InternetAddress(from));

    msg.addRecipient(Message.RecipientType.TO, new InternetAddress(to));

    Transport.send(msg);

    } catch (Exception mex) {

    mex.printStackTrace();

    }

    }

    public class SMTPAuthenticator extends javax.mail.Authenticator {

    public PasswordAuthentication getPasswordAuthentication() {

    return new PasswordAuthentication(d_email, d_password);

    }

    }

    }

    展开全文
  • python 自动化办公 - 邮件自动发送 获取授权码 设置>账户>POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服务 选择开启 邮件的自动发送只依赖python自带类库就能解决: import smtplib # smtplib --- 登录邮箱,发送...
  • 日常可能需要将一些报表作为附件,报表内容作为正文粘贴到邮件里进行发送。这部分可以通过python进行自动化来实现。代码如下(仅是发送邮件),附件是csv文件,正文目前采用文本形式,勉强可以读。后续下一步计划...
  • 利用python实现定时发送邮件功能,有大神么一、文件形式的邮件 复制代码 代码如下: #。/usr/bin/env python3 #coding: utf-8 import smtplib from email.mime.text import MIMEText from email.header import Header...
  • python实现邮件自动发送来源:中文源码网浏览: 次日期:2019年11月5日【下载文档:python实现邮件自动发送.txt】(友情提示:右键点上行txt文档名->目标另存为)python实现邮件自动发送本文实例为大家分享了python...
  • 解放双手,用Python实现自动发送邮件使用Python实现自动化邮件发送,可以让你摆脱繁琐的重复性业务,节省非常多的时间。Python有两个内置库:smtplib和email,能够实现邮件功能,smtplib库负责发送邮件,email库负责...
  • 定时备份无疑是解决备份的最好的途径,本文主要使用Navicat来自动备份数据库和创建相关的计划任务。(一)使用Navicat自动备份数据库:1,打开navicat客户端,连上mysql后,双击左边你想要备份的数据库。点击“计划”...
  • import yagmail#登陆自己的邮箱yagmail.register('yourmail@163.com','password')yag = yagmail.SMTP(user="yourmail@163.com", password="password",host='smtp.163.com')#编辑邮件内容...#发送邮件yag.send...
  • 但是数据和程序分开时,还需要先下载数据,保存到本地再发送邮件。查了很多资料后,发现apach提供了很好的一个commons-mail.jar包,做了很好的封装,简单易用。下载地址是...
  • VB.NET发送电子邮件(通过使用SmtpClient类)以下代码已通过VS2008测试。[vb]viewplaincopy''''''通过SmtpClient类发送电子邮件''''''收件人地址列表'''邮件主题'''邮件内容'''附件列表Hastable。KEY=文件名,Value文件...
  • 文章目录前提条件邮件获取IP地址自动运行`SendIPAddrByEmail.py`程序 前提条件 开启sshd服务 python3.6+环境 live邮箱或QQ邮箱 邮件获取IP地址 在你当前的用户文件夹下创建SendIPAddrByEmail.py cd /home/user ...
  • I am using a MySQL database and ...
  • 本文实例为大家分享了python自动发送邮件的具体代码,供大家参考,具体内容如下 #coding=utf8'''''该模块使自动发送邮件的模块模块初始化时需要设置:sender:发送人reciver:接收者smtpServer:发送人的服务器类型...
  • #------------------------------------------------我是可耻的分割线-------------------------------------------学习selenium自动化之前,最好先学习HTML、CSS、JavaScript等知识,有助于理解定位及操作元素的...
  • 本文实例为大家分享了实现了一个android自动发送邮件的demo。支持163,qq邮箱需要添加activation.jar,additionnal.jar和mail.jar这三个包首先是一个EmailSender类import java.io.File;import java.util.Date;import ...
  • 环境:ubuntu12.04涉及命令:mutt,crontab1....把你要发送邮件编辑成txt文件,这里比如:mail.txt(里面有你要的内容,绝对路径:/home/alean/Txt/mail.txt)3.编辑好你的发送邮件脚本:(假设路径为:/home/...
  • 一、前言在开始正题之前,我们先理一下常见的电子邮件协议:SMTP、POP、IMAP 都遵循TCP/IP协议规范。至于Exchange是邮件服务器,不是收...简单来说是发送协议。POP:协议允许电子邮件客户端下载服务器上的邮件,但...
  • 用Python自动发送邮件

    2021-02-05 19:58:31
    用Python自动发送邮件最近需要在服务器上处理一些耗时比较长的任务,因此想到利用python写一个自动发送邮件的脚本,在任务执行完毕后发送邮件通知我。以下代码以163邮箱为例:开通163邮箱的smtp协议设置->POP3/...
  • 编写自动发送邮件脚本,如下: #!/bin/bash ###################################################################################### # this shell script is used to send mail automatically # the root ...
  • 1、找不到某类:**解决方法:**打包时自动生成了META-INF下MANIFEST.MF文件解压jar包,查看其中的MANIFEST.MF文件: 将其中用到的jar包目录添加进Class-PAth中。2、java.lang.NullPointerExceptionat javax.mail....
  • 网站通过接入邮件验证码接口(邮件api接口)来实现邮件自动发送功能;也就是通过像Kewail邮件服务平台这类第三方邮件服务平台,提供一个邮件API接口接入的模板,也就是DEMO或SDK;根据模板的说明...
  • Java邮箱自动发送邮件

    2021-03-07 00:35:16
    导读热词下面是编程之家 jb51.cc 通过网络收集整理的代码片段。编程之家小编现在分享给大家,也给大家做个参考。public class SendMail {static int port = 25;...// 邮件服务器mail.cpip.net.cnstatic ...// 发送者...
  • 注* 你无法通过此功能自动群发垃圾邮件,一般大型邮件服务商对发送次数和间隔有限制,数量过大被会屏蔽,请紧慎使用。简介Nodemailer 是一款简单易用的基于于SMTP协议(或 Amazon SES)的,用nodejs写的邮件发送组件,...
  • 这样就可以实现邮件的发送了。结果如下:如果要实现自动发送邮件的话,那么程序必须能自动的运行。程序在后台自动运行的代码如下:
  • } catch(SQLException e){} } } } /** * 发送邮件 * @param session 会话 * @param toAddress 目的地址 * @param subject 邮件主题 * @param content 邮件内容(HTML) * @param files 邮件附件 * @return 是否发送...
  • /** * 发送邮件的测试程序 * * @author lwq * */ public class MailTest { public static void main(String[] args) throws MessagingException { // 配置发送邮件的环境属性 final Properties props = new ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 273,267
精华内容 109,306
关键字:

邮件自动发送

友情链接: iic.zip