smtp
新闻系统的定时通知初步有三种实用方式,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的更多相关文章
- c#smtp多线程
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; usin ...
- python smtp 群发邮件
最近工作中遇到使用脚本处理问题并发送结果邮件,使用python的smtp模块很简单的完成了实现.今天遇到一个问题,根据脚本的测试结果需要群发邮件,但是发送邮件的py文件只有首个地址收到了邮件.仔细排查 ...
- SSRS1:配置SMTP Server发送mail
为了使用SSRS发送mail,必须为Reporting service配置SMTP Server. 1,在Reporting Service Configuration Manager中配置Email ...
- CentOS6.5_64位系统下安装配置postfix邮件系统 启用并配置SMTP在第三方上边使用发送邮件
一前言 本来使用qq邮箱发送邮件,然后借助sendEmail来发送邮件告警,但是有每天的200封限制,很是不爽,于是想到来自己搭建邮件服务器来解决这个问题,关于使用sendEmail来借助qq邮箱来发 ...
- Python SMTP邮件模块
SMTP是发送邮件的协议,Python内置对SMTP的支持,可以发送纯文本邮件.HTML邮件以及带附件的邮件. Python对SMTP支持有smtplib和email两个模块,email负责构造邮件, ...
- 本地测试SMTP服务器
一年前看计算机网络里的电子邮件协议的时候,想自己建一个本地SMTP服务器,然后用telnet发送消息,后来是没找到.这次又翻看了一下,找了个Windows平台下的hMailServer,挺方便的.步骤 ...
- SMTP Error: Could not connect to SMTP host
PHPMailer是一个非常棒的开源邮件类,使用也非常简单,但是对于虚拟主机来说,往往要受到各种限制.刚才我在虚拟主机上使用PHPMailer就遇到一个“SMTP Error: Could not c ...
- 使用phpmailer发送smtp邮件时提示 SMTP Error: Could not authenticate 错误
使用phpmailer发送smtp邮件时提示 SMTP Error: Could not authenticate 错误 这个错误是验证出现错误, $mail->Port = 25; //SMT ...
- php用smtp发送邮件
php用smtp发送邮件 1.其实用smtp协议发送邮件很简单,用框架或者原生都可以,我们需要用到class.phpmailer.php 和class.smtp.php,大家可以去网上下载. 这是一个 ...
- C#如何利用QQ邮箱SMTP发送邮件
public void SendEmail() { MailMessage msg = new MailMessage(); msg.To.Add("to@qq.com");//收 ...
随机推荐
- switch-case和if-else可互换时
当switch-case和if-else可互换时,应当优先采用switch-case.因为switch-case的效率更高(详情下回分解).
- Flutter 常用工具类库common_utils
地址:https://pub.flutter-io.cn/packages/common_utils#-readme-tab- Dart常用工具类库 common_utils 1.TimelineUt ...
- 转《JavaScript中的图片处理与合成》
引言: 本系列现在构思成以下4个部分: 基础类型图片处理技术之缩放.裁剪与旋转(传送门): 基础类型图片处理技术之图片合成(传送门): 基础类型图片处理技术之文字合成(传送门): 算法类型图片处理技术 ...
- java学习之—递归实现二分查找法
/** * 递归实现二分查找法 * Create by Administrator * 2018/6/21 0021 * 上午 11:25 **/ class OrdArray{ private lo ...
- windos安装maven
1.下载好maven压缩包,并解压到相应位置,本次安装在D: 2.配置环境变量 MAVEN_HOME=D:\apache-maven-3.0.5 path=%MAVEN_HOME% 3.生成maven ...
- 【纪录】Hash about
backup a easy implement # coding: utf-8 def add(k, v): pass def get(target): pass class LinearMap(ob ...
- Puppet日常总结
在工作中常常会有这样一种需求:某几个人需要某些测试服务器的root权限.比如,开发部门的张三,李四,王五,赵六需要rsync服务器的root权限.有些同学会说那直接 visudo在里面添加几个人不就行 ...
- 一、linux扩展
1.linux-解压bz2文件提示tar (child): bzip2: Cannot exec: No such file or directory 原因,linux下没有bzip2解压工具 安装b ...
- Lodop扁宽横向241mm*93mm这种怪异的纸张如何设置
Lodop中如果设置LODOP.SET_PRINT_PAGESIZE(2,'241mm','93mm','');,会发现实际的纸张和自己设置的不同,不只是打印机不识别,xps和pdf虚拟打印机也不能正 ...
- linode上切换Linux到FreeBSD
PS:不是真正的无缝切换,数据需要自己备份.还原. Linode官方给出了一篇文章:https://www.linode.com/docs/tools-reference/custom-kernels ...