zoukankan      html  css  js  c++  java
  • python发送邮件

    首先是使用ubuntu作为服务器发送

      这个操作可能失败,收邮件也需要到垃圾箱查看。

      第一步,安装发送邮件需要的服务

          使用命令:

    sudo apt-get install postfix
    sudo service postfix start
    

      第一句是安装,第二句是开启

      第二步,写一个发邮件的python文件

        随便上网找一段就可以了...

        以下是我找的例子:

    #!/usr/bin/python
    # -*- coding: UTF-8 -*-
    
    import smtplib
    from email.mime.text import MIMEText
    from email.header import Header
    
    
    mail_host = "localhost"  # 设置服务器,localhost表示本地,需要第一步安装并开启服务成功
    
    content = "Hello email!"  # 要发送的内容(正文)先编辑好
    
    msg = MIMEText(content, 'plain', 'utf-8')  # 格式化
    
    msg['From'] = Header("Masako", 'utf-8')  # 发件人(声称的)
    msg['To'] = Header("cnblog", 'utf-8')  # 收件人(声称的)
    msg['Subject'] = Header("Email greetings", 'utf-8')  # 邮件主题
    
    sender = 'masako@cnblogs.com'  # 发送方
    receivers = ['123456@qq.com']  # 收件地址,列表,可同时发给多个
    
    try:
        smtpObj = smtplib.SMTP()    # 实例化一个smtp对象,用来连接smtp服务
        smtpObj.connect(mail_host, 25)  # 25 为 SMTP 端口号
        # smtpObj.login(mail_user, mail_pass)  # 使用第三方服务器时可能需要登录
        smtpObj.sendmail(sender, receivers, msg.as_string())  # 执行发送邮件这个动作
        print "success"
    except smtplib.SMTPException:
        print "failed"

      第三步,将程序跑起来

      将第二步的程序保存下来,命名为email_sender.py,执行python email_sender.py

      以上几步就完成了发送一条邮件的任务,将receivers列表中的地址改成你自己的地址,就可以在收件箱(垃圾箱)看到邮件了.

      亲测有效,效果如下

    下面是通用的,使用qq邮箱发送邮件方式

    先到qq邮箱中获取一个授权码

    设置 > 账户 > POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服务

     关于授权码和使用方式建议阅读一下说明。

    获取到授权码之后,就可以开始编程了。代码和上面一个例子差不多。

    # encoding=utf-8
    # date: 2019/1/15
    __author__ = "Masako"
    
    import smtplib
    from email.mime.text import MIMEText
    from email.header import Header

    mail_user = '123456789@qq.com'
    mail_pass = 'sacsdcesdcas'


    def send(content, receivers, sender, receiver):
        msg = MIMEText(content, 'plain', 'utf-8')  # 格式化
    
        msg['From'] = Header(sender, 'utf-8')  # 发件人(声称的)
        msg['To'] = Header(receiver, 'utf-8')  # 收件人(声称的)
        msg['Subject'] = Header("Email greetings", 'utf-8')  # 邮件主题
    
        try:
            smtp_obj = smtplib.SMTP_SSL("smtp.qq.com", 465)  # 实例化一个smtp对象,用来连接smtp服务
            smtp_obj.login(mail_user, mail_pass)  # 登录, mail_pass是生成"授权码"
            smtp_obj.sendmail(mail_user, receivers, msg.as_string())  # 执行发送邮件这个动作
            print("success")
            result = True
        except smtplib.SMTPException as e:
            result = False
            print("failed")
    
        return result

         主要就是用户名和密码,需要用来登录。

      收信结果如下。

       可以看到发件人和收件人都是我代码中“声称”的,也就是我自己设定的,而实际交互的邮箱是我涂掉的,设置了授权的邮箱,和"receivers"这个列表中设置的邮箱地址。

      

  • 相关阅读:
    腾讯QQ服务器汇总表 及禁用QQ方法
    C#下一个SQL SERVER数据库操作类
    获取页面运行时间以及数据库查询次数
    GridView导出Excel
    使用FileUpload控件上传图片并自动生成缩略图、带文字和图片的水印图
    JS图片loading及放大查看效果(兼容IE,FF)
    .NET 开发人员十个必备工具
    jsp日期时间格式化输出
    MyEclipse6.5与Perforce的集成
    [转]firefox与IE的nextSibling
  • 原文地址:https://www.cnblogs.com/masako/p/7217670.html
Copyright © 2011-2022 走看看