mailgun 发邮件示例代码Python版
1 首先到mailgun官网注册账号,并激活账号
点击domains,进入默认的域名,最底下那个sandbox域名就是默认的测试域名
如果自己有域名,也可以添加自己的域名测试,具体参考:ssr panel魔改前端登陆面板配置邮件服务
前4步添加自己的域名

2 查看域名信息

3 添加测试账号,添加完之后,会受到确认邮件,点击确认之后就可以发送测试邮件
点击上面图片manage Authorized Recipients添加

这个时候进入邮箱确认
4 示例代码
# -*- coding=utf- -*-
import smtplib
import time
#from pymongo import MongoClient
from email.mime.text import MIMEText
"""
people
[{"id":"贝贝","address":"lghher1991@163.com"},{"id":"航航","address":"lghher1990@163.com"}]
email
{"sub":"标题","html":"<html><h1>贝贝</h1></html>"}
"""
def sendEmail(u_list,sub,content):
smtp_host = 'smtp.mailgun.com'
account = 'postmaster@sandbox34daf3c7c32248fb9ab29b5468216c7f.mailgun.org'
password='3986a06d1a14ab1eb7d19b0a237dc408'
msg = MIMEText(content,'html','utf-8')
msg["Accept-Language"]="zh-CN"
msg["Accept-Charset"]="ISO-8859-1,utf-8"
msg['Subject']=sub
msg['From']='sunland@126.com'
# msg['To']=';'.join(u_list)
msg['To']=(u_list)
smtp = smtplib.SMTP(smtp_host)
smtp.login(account,password)
smtp.sendmail(account,u_list,msg.as_string())
smtp.quit()
print "发送成功".decode('utf-8').encode('mbcs')
user = 'ymnlwyy@sina.com'
sub = 'testmailgun'
content = 'hello mailgun'
sendEmail(user,sub,content)
打开vi 编辑器,复制上面代码,保存并运行代码
vi sendmail.py//复制代码 wq:保存 python sendmail.py
如图,表示运行成功:

此时可以打开自己邮箱,查看发送的邮件
也可以在mailgun的log里面看到发送的邮件

错误汇总:
1 smtplib.SMTPAuthenticationError: (535, '5.7.0 Mailgun is not loving your login or password')
说明用户名(account)和密码(password)填写错误,请刷新domain页面查看密码,填入新的密码,在运行代码
2 smtplib.SMTPDataError: (554, 'Sandbox subdomains are for test purposes only. Please add your own domain or add the address to authorized recipients in Account Settings.')
说明没有添加测试账号,请回到步骤3添加测试邮箱后再运行代码
参考链接:读取mongodb利用mailgun发送邮件--python学习
mailgun 发邮件示例代码Python版的更多相关文章
- C# mailKit 发邮件 简单代码
public static async Task<bool> SendMailAsync22(string Name, string receive, string sender, str ...
- 百度EasyDL文本分类自定义API示例代码 python
因为需要将命名实体中的组织机构名进一步区分为政府.企业.社会组织等,在easydl上做了一个文本分类模型,但是要用这个接口时候发现, 官方文档中竟然还在用urllib2的库,且不完整.好多地方会报错, ...
- 【python】python 自动发邮件
一.一般发邮件的方法 Python对SMTP支持有smtplib和email两个模块,email负责构造邮件,smtplib负责发送邮件. 注意到构造MIMETEXT对象时,第一个参数就是邮件正文,第 ...
- Python3.5 执行发邮件脚本失败【惑】==>【搞定】
Python发邮件的代码如下: 只需要填写好加粗字体,即可正常使用. from exchangelib import DELEGATE, Account, Credentials, Message, ...
- Python3.5 执行发邮件Exchangelib(=)
fyl Python发邮件的代码如下: 只需要填写好加粗字体,即可正常使用. from exchangelib import DELEGATE, Account, Credentials, Messa ...
- Java - JavaMail - 利用 JavaMail 发邮件的 小demo
1. 概述 面试的时候, 被问到一些乱七八糟的运维知识 虽然我不是干运维的, 但是最后却告诉我专业知识深度不够, 感觉很难受 又回到了一个烦人的问题 工作没有深度的情况下, 你该如何的提升自己, 并且 ...
- python中关于发邮件的示例
发送邮件示例代码如下: from WebUtils import ProperitiesLoad from email.mime.text import MIMEText from email.mim ...
- Python自动发邮件-yagmail库
之前写过用标准库使用Python Smtplib和email发送邮件,感觉很繁琐,久了不用之后便忘记了.前几天看知乎哪些Python库让你相见恨晚?,看到了yagmail第三方库,学习过程中遇到一些问 ...
- Python自动发邮件——smtplib和email库和yagmail库
''' 一.先导入smtplib模块 导入MIMEText库用来做纯文本的邮件模板 二.发邮件几个相关的参数,每个邮箱的发件服务器不一样,以163为例子百度搜索服务器是 smtp.163.com 三. ...
随机推荐
- golang验证提交的数据中某个字段是否重复
提交的json数据如下: { , , , ", , , "screen_mode": "3,2", , "ad_plats":[ ...
- 微信小程序初识
http://lib.csdn.net/article/wechat/46742 微信小程序的前途和定位有什么疑惑?点进去 简单先记几个印象名词:流量入口,线下是重点,“即用即走”适合低频工具类产品. ...
- java-redis字符类数据操作示例(一)
对于大部分程序猿来讲,学习新知识重在编码实践,于我也是这样.现在初识redis,一直看文章难免感觉是浮光掠影,印象不深.所以间隙中,将自己的测试代码整理成博客,旨在加深记忆并提醒自己对待编程要用心沉下 ...
- 对于JDBC数据库的初始化操作
package com.bluesky.connection; import java.sql.Connection; import java.sql.DriverManager; import ja ...
- Elasticsearch教程-从入门到精通(转载)
转载,原文地址:http://mageedu.blog.51cto.com/4265610/1714522?utm_source=tuicool&utm_medium=referral 各位运 ...
- 2018-03-03-解决win下凭据删除不干净而无法登录共项目录的问题
layout: post title: 2018-03-03-解决win下凭据删除不干净而无法登录共项目录的问题 key: 20180303 tags: GIT 版本管理 modify_date: 2 ...
- 【Elasticsearch全文搜索引擎实战】之集群搭建及配置
文中Elasticsearch版本为6.0.1 1. 环境配置 把环境配置放在第一节来讲,是因为很多人按官网的Getting Started安装运行会有各种错误.其实都是因为一些配置不正确引起的. 首 ...
- 浅谈 Glide - BitmapPool 的存储时机 & 解答 ViewTarget 在同一View显示不同的图片时,总用同一个 Bitmap 引用的原因
作者:林冠宏 / 指尖下的幽灵 掘金:https://juejin.im/user/587f0dfe128fe100570ce2d8 博客:http://www.cnblogs.com/linguan ...
- Ubuntu16.04安装搜狗输入法后有黑边问题的解决方法
apt-get install compton compton -b
- dm642的中断定时器
TIMER_Handle TimerHandle0; void timer1() { ////////////定时器/////////////////////// TimerHandle0 = TI ...