Python 电子邮件

要编写程序来发送和接收邮件,本质上就是:

  1. 编写MUA把邮件发到MTA;

  2. 编写MUA从MDA上收邮件。

发邮件时,MUA和MTA使用的协议就是SMTP:Simple Mail Transfer Protocol,后面的MTA到另一个MTA也是用SMTP协议。

收邮件时,MUA和MDA使用的协议有两种:POP:Post Office Protocol,目前版本是3,俗称POP3;IMAP:Internet Message Access Protocol,目前版本是4,优点是不但能取邮件,还可以直接操作MDA上存储的邮件,比如从收件箱移到垃圾箱,等等。

在使用Python收发邮件前,请先准备好至少两个电子邮件,如xxx@163.comxxx@sina.comxxx@qq.com等,注意两个邮箱不要用同一家邮件服务商

# -*- coding: utf-8 -*-
import smtplib
from email.mime.text import MIMEText
'''
一些常用邮箱发件服务器及端口号
邮箱   发件服务器    非SSL协议端口    SSL协议端口

163   smtp.163.com      25          465/587

qq    smtp.qq.com      25          465/587
'''
import time
'''
    # 设置发件服务器地址
  # 设置发件服务器端口号。注意,这里有SSL和非SSL两种形式
  # 设置发件邮箱,一定要自己注册的邮箱
  # 设置发件邮箱的密码,等会登陆会用到
  # 设置邮件接收人,可以是扣扣邮箱
'''
class sendEmail:

    # 设置邮件正文,这里是支持HTML的
    def __init__(self,sender,receiver,pwd,info):
        self.host = 'smtp.163.com'
        self.port = 25
        self.sender = sender
        self.pwd = pwd.strip()
        self.receiver = receiver
        self.info=info
        self.time_info = time.strftime('%Y-%m-%d %H:%M:%S', time.localtime(time.time()))
        self.body = '<h1>头条房产</h1><p>在' + self.time_info + '页面报错</p>'

    def start(self):
        msg = MIMEText(self.body, 'html')  # 设置正文为符合邮件格式的HTML内容
        msg['subject'] = self.info  # 设置邮件标题
        msg['from'] = self.sender  # 设置发送人
        msg['to'] = self.receiver  # 设置接收人
        try:
            s = smtplib.SMTP(self.host, self.port)  # 注意!如果是使用SSL端口,这里就要改为SMTP_SSL
            s.login(self.sender, self.pwd)  # 登陆邮箱
            s.sendmail(self.sender, self.receiver, msg.as_string())  # 发送邮件!
            print 'Done'
        except smtplib.SMTPException, e:
            print(e)

  

import sendEmail

sendEmail.sendEmail('xxxxx@163.com', 'xxxxx@qq.com', 'xxxxx','发送信息').start()

  

原文地址:https://www.cnblogs.com/likeyou1/p/8431099.html