python3 发邮件 smtplib & email 库

嗨 实现了用163发送到qq的功能,遗留了两个问题:

1. 接收者list会报错;update:因为list[]会传递过去一个真的[]list,改成如下就可以了:
before:  maillist=[‘[email protected]‘,‘[email protected]‘]
   msg[‘To‘]=maillist
   print (maillist) -->[‘[email protected]‘, ‘[email protected]‘]

after:
    maillist = [‘[email protected]‘,‘[email protected]‘]
    msg[‘To‘] = ‘,‘.join(maillist)
    print(maillist)  --> [email protected],[email protected]
2. msg.as_string() 是什么意思?update:就是把msg转成string了

揍是不想google了啊喂,感觉最近google越来越查不到想要的答案了。update:还是得继续google下去,继续求问下去啊,另外,官方英文文档看了也看不懂,囧了个囧

贴上部分代码,方便懒人copy:

def sendmail(subject, content):
    email_host = ‘smtp.163.com‘     # 发送者是163邮箱
    email_user = ‘发送者邮箱账号,我用汉字替换掉‘  # 发送者账号
    email_pwd = ‘发送者邮箱密码,我用汉字替换掉‘       # 发送者密码
    maillist =‘接收者邮箱账号,我用汉字替换掉‘    # 接收者账号,本来想写成[]list的,但是报错,还没解决!
    me = email_user
    # 三个参数:第一个为文本内容,第二个 html 设置文本格式,第三个 utf-8 设置编码
    msg = MIMEText(content, ‘html‘, ‘utf-8‘)    # 邮件内容
    msg[‘Subject‘] = subject    # 邮件主题
    msg[‘From‘] = me    # 发送者账号
    msg[‘To‘] = maillist    # 接收者账号列表(列表没实现)

    smtp = smtplib.SMTP(email_host) # 如上变量定义的,是163邮箱
    smtp.login(email_user, email_pwd)   # 发送者的邮箱账号,密码
    smtp.sendmail(me, maillist, msg.as_string())    # 参数分别是发送者,接收者,第三个不知道
    smtp.quit() # 发送完毕后退出smtp
    print (‘email send success.‘)

sendmail(‘主题‘, ‘内容‘)    # 调用发送邮箱的函数

还有第二种方法也实现了,不过我喜欢上面那种,是loveisbug写的,感觉很程序

第二种是从网上找的,作者忘了,真忘了,昨天搜的

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

msg = email.mime.multipart.MIMEMultipart()
msg[‘from‘] = ‘发送者的邮箱账号‘
msg[‘to‘] = ‘接收者的邮箱账号‘
msg[‘subject‘] = ‘test,这是邮件主题‘
content = ‘‘‘‘‘
    你好,
            这是一封自动发送的邮件的内容。
‘‘‘
txt = email.mime.text.MIMEText(content)
msg.attach(txt)

smtp = smtplib
smtp = smtplib.SMTP()
smtp.connect(‘smtp.163.com‘) # 使用的发送者邮箱的那啥来着,post
smtp.login(‘发送者的邮箱账号‘, ‘发送者的邮箱密码‘)
smtp.sendmail(‘发送者的邮箱账号‘, ‘接收者的邮箱账号‘, str(msg))
smtp.quit()
时间: 2024-08-28 10:39:59

python3 发邮件 smtplib & email 库的相关文章

添加自定义监控项目、配置邮件告警、测试告警、不发邮件的问题处理

添加自定义监控项目 [[email protected] ~]# netstat -ant |grep ':80 ' |grep -c ESTABLISHED ##这条命令是可以查看80端口下ESTABLISHED这个状态的连接有多少个 需求:监控某台web的80端口连接数,并出图两步:1)zabbix监控中心创建监控项目:2)针对该监控项目以图形展现 对于第一步,需要到客户端定义脚本, [[email protected] ~]# vim /usr/local/sbin/estab.sh ##

发邮件 和 excel导出中文文件名

/** * 发邮件 * @param email * @param subject * @param body * @throws UnsupportedEncodingException */ public static void sendEmail(String email, String subject, String body) throws UnsupportedEncodingException,NoSuchProviderException,MessagingException,E

python3:利用smtplib库和smtp.qq.com邮件服务器发送邮件

python3:利用smtplib库和smtp.qq.com邮件服务器发送邮件 使用qq的邮件服务器需要注意的两个地方主要是: 1.协议问题 使用465端口 SSL 协议 2.口令问题 出现SMTPAuthenticationError 主要的原因就是口令和帐号信息不对,这里我们使用qq服务器发送 需要先到邮箱里设置独立密码(必须), 然后开启 SMTP/POP3服务.然后用qq手机安全中心扫一扫会给一个授权码, 在代码中要填写的密码是这个授权码, 而不是邮箱密码! 示例代码: # python

【Python】 发邮件用 smtplib & email

■ smtplib & email ■ 概述 发邮件主要用到smtplib以及email模块.stmplib用于邮箱和服务器间的连接,发送的步骤.email模块主要用于处理编码,邮件内容等等.主要是参考了那个发报表的脚本,简单记录了下最简单的用法,没啥参考价值= = ■ smtplib基本用法 smtp = smtplib.SMTP() #建立smtp对象 smtp.connect('server',port) #建立与smtp服务器的连接 smtp.login('user','password

Python自动发邮件-yagmail库

之前写过用标准库使用Python Smtplib和email发送邮件,感觉很繁琐,久了不用之后便忘记了.前几天看知乎哪些Python库让你相见恨晚?,看到了yagmail第三方库,学习过程中遇到一些问题,记录在此处. 之前使用的python的smtplib.email模块发模块的一步步骤是: 一.先导入smtplib模块 导入MIMEText库用来做纯文本的邮件模板二.发邮件几个相关的参数,每个邮箱的发件服务器不一样,以126为例子百度搜索服务器是 smtp.126.com三.写邮件主题和正文,

python自动发邮件库yagmail

一般发邮件方法 我以前在通过Python实现自动化邮件功能的时候是这样的: import smtplib from email.mime.text import MIMEText from email.header import Header # 发送邮箱服务器 smtpserver = 'smtp.sina.com' # 发送邮箱用户/密码 user = '[email protected]' password = '123456' # 发送邮箱 sender = '[email protec

python的邮件模块smtplib&email

import smtplib import string from email.mime.text import MIMEText def send_mail(host, sender, sender_passwd, receiver, content_file, port="25"):     # print "create smtp object"     server = smtplib.SMTP()     # print "conncect sm

java实现发邮件的工具类,方便 好用(需要架包的Send Email To me)

原文:java实现发邮件的工具类,方便 好用(需要架包的Send Email To me) 源代码下载地址:http://www.zuidaima.com/share/1550463394794496.htm package com.zuidaima.util; import java.util.Properties; import javax.mail.BodyPart; import javax.mail.Message; import javax.mail.Multipart; impor

Mac下命令行发邮件【搭配php(shell_exec...)等脚本语言,轻松发邮件,告别各种依赖库】

用到的是msmtp,一个smtp客户端,比sendmail,postfix更加轻量.用自己的QQ邮箱(163...)发邮件的话,很适合. Mac下安装很简单,一句话:brew install msmtp 另外需要配置两个文件: ~/.mailrc: ~/.msmtp: 正式发送: 收到洛: PHP发送的话,用shell_exec之类的函数,就不用多说啦,命令当然支持更多的参数,详细可参考相关文档或者Terminal输msmtp --help查看.