新闻系统的定时通知初步有三种实用方式,1.短信 2.邮箱 3.微信

短信就不得不使用第三方平台,虽说5分一条,但耐不住量大,一天1000条的话,50元也是一笔不小的支出。

这时,邮箱和微信的优势就体现出来了,而且经测试,邮箱的并发性还是挺不错的。

以下是自己实现的简单封装

import smtplib
import email.mime.multipart
import email.mime.text

class Emailer(object):
    def __init__(self,account,password):
        """初始化账号密码"""
        self.msg = email.mime.multipart.MIMEMultipart()
        self._account = account
        self._password = password

    def send_email(self,send_email,title,content):
        """发送邮件"""
        self.msg['from'] = self._account
        self.msg['to'] = send_email
        self.msg['subject'] = title
        content = content
        txt = email.mime.text.MIMEText(content)
        self.msg.attach(txt)

        smtp = smtplib.SMTP()
        smtp.connect('smtp.163.com') # 使用的发送者邮箱的那啥来着,post
        smtp.login(self._account, self._password)
        smtp.sendmail(self._account, send_email, str(self.msg))
        print("发送成功")
        smtp.quit()

if __name__ == "__main__":
    emailer = Emailer("账号","密码")
    title = "大事不好了"
    content = "....."
    emailer.send_email("接受邮箱",title,content)

  

然后就遇到了一个问题,在windows下运行没有问题,但是一旦放到服务器上则一直卡死状态,无法发送,网上百度原来发现是端口问题,修改上述代码发送成功.

import smtplib
import email.mime.multipart
import email.mime.text

class Emailer(object):
    def __init__(self,account,password):
        """初始化账号密码"""
        self.msg = email.mime.multipart.MIMEMultipart()
        self._account = account
        self._password = password

    def send_email(self,send_email,title,content):
        """发送邮件"""
        self.msg['from'] = self._account
        self.msg['to'] = send_email
        self.msg['subject'] = title
        content = content
        txt = email.mime.text.MIMEText(content)
        self.msg.attach(txt)

        smtp = smtplib.SMTP_SSL()
        smtp.connect('smtp.163.com',465) # 使用的发送者邮箱的那啥来着,post
        smtp.login(self._account, self._password)
        smtp.sendmail(self._account, send_email, str(self.msg))
        print("发送成功")
        smtp.quit()

if __name__ == "__main__":
    emailer = Emailer("账号","密码")
    title = "大事不好了"
    content = "....."
    emailer.send_email("接受邮箱",title,content)

smtp的更多相关文章

  1. c#smtp多线程

    using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; usin ...

  2. python smtp 群发邮件

    最近工作中遇到使用脚本处理问题并发送结果邮件,使用python的smtp模块很简单的完成了实现.今天遇到一个问题,根据脚本的测试结果需要群发邮件,但是发送邮件的py文件只有首个地址收到了邮件.仔细排查 ...

  3. SSRS1:配置SMTP Server发送mail

    为了使用SSRS发送mail,必须为Reporting service配置SMTP Server. 1,在Reporting Service Configuration Manager中配置Email ...

  4. CentOS6.5_64位系统下安装配置postfix邮件系统 启用并配置SMTP在第三方上边使用发送邮件

    一前言 本来使用qq邮箱发送邮件,然后借助sendEmail来发送邮件告警,但是有每天的200封限制,很是不爽,于是想到来自己搭建邮件服务器来解决这个问题,关于使用sendEmail来借助qq邮箱来发 ...

  5. Python SMTP邮件模块

    SMTP是发送邮件的协议,Python内置对SMTP的支持,可以发送纯文本邮件.HTML邮件以及带附件的邮件. Python对SMTP支持有smtplib和email两个模块,email负责构造邮件, ...

  6. 本地测试SMTP服务器

    一年前看计算机网络里的电子邮件协议的时候,想自己建一个本地SMTP服务器,然后用telnet发送消息,后来是没找到.这次又翻看了一下,找了个Windows平台下的hMailServer,挺方便的.步骤 ...

  7. SMTP Error: Could not connect to SMTP host

    PHPMailer是一个非常棒的开源邮件类,使用也非常简单,但是对于虚拟主机来说,往往要受到各种限制.刚才我在虚拟主机上使用PHPMailer就遇到一个“SMTP Error: Could not c ...

  8. 使用phpmailer发送smtp邮件时提示 SMTP Error: Could not authenticate 错误

    使用phpmailer发送smtp邮件时提示 SMTP Error: Could not authenticate 错误 这个错误是验证出现错误, $mail->Port = 25; //SMT ...

  9. php用smtp发送邮件

    php用smtp发送邮件 1.其实用smtp协议发送邮件很简单,用框架或者原生都可以,我们需要用到class.phpmailer.php 和class.smtp.php,大家可以去网上下载. 这是一个 ...

  10. C#如何利用QQ邮箱SMTP发送邮件

    public void SendEmail() { MailMessage msg = new MailMessage(); msg.To.Add("to@qq.com");//收 ...

随机推荐

  1. JEECG 不同(角色的)人对同样的字段数据,使用不同的字段验证规则

    JEECG智能开发平台v3 开发指南http://www.jeecg.org/book/jeecg_v3.html jeecg: JEECG是一款基于代码生成器的J2EE快速开发平台,开源界“小普元” ...

  2. 同事写得Python对页面压测脚本

    #!/usr/bin/env python # *-* coding:utf-8 *-* import threading import requests import time # headers ...

  3. linux系统下MySQL表名区分大小写问题

    linux系统下MySQL表名区分大小写问题 https://www.cnblogs.com/jun1019/p/7073227.html [mysqld] lower_case_table_name ...

  4. 11 The superlative

    1 最高级用来表明三个或更多事物之间的关系.最高级是通过在形容词之前加 "the" 并在之后加 "-est",或在形容词之前加 "the most&q ...

  5. 缓存session,cookie,sessionStorage,localStorage的区别

    https://www.cnblogs.com/cencenyue/p/7604651.html(copy) 浅谈session,cookie,sessionStorage,localStorage的 ...

  6. day 7-6 GIL,死锁,递归锁与信号量,Event,queue,

    摘要: 1.死锁与递归锁 2.信号量 3.Event 4.Timer 5.GIL 6.Queue 7.什么时候该用多线程和多进程 一. 死锁与递归锁 所谓死锁: 是指两个或两个以上的进程或线程在执行过 ...

  7. C# Note23: 如何自定义类型使用foreach循环

    前言 在foreach语句代码中,我们经常是对List,Collection,Dictionary等类型的数据进行操作,不过C#允许用户自定义自己的类型来使用foreach语句.那么自定义类型能够使用 ...

  8. Java中 VO、 PO、DO、DTO、 BO、 QO、DAO、POJO的概念(转)

    PO(persistant object) 持久对象 在 o/r 映射的时候出现的概念,如果没有 o/r 映射,没有这个概念存在了.通常对应数据模型 ( 数据库 ), 本身还有部分业务逻辑的处理.可以 ...

  9. Window上安装—Docker 笔记

    本文转自:http://cnodejs.org/topic/55a24267419f1e8a23a64367 需求 想玩nodeClub 源码跑起来,结果window 上各种报错,各种依赖软件要装的感 ...

  10. 百度云虚拟主机配置 Thinkphp5.1

    材料 服务器:百度云虚拟主机(nginx+php7.0+linux) Thinkphp 5.1 问题 百度云默认目录为/webroot,但是我们的需求是将项目存放到/webroot/public下面. ...