不是很理解,你是要把收邮件改成发邮件吗
发邮件用的是smtp服务,然后填的是smtp服务器地址,然后是一个收件人地址
import smtplib
然后发邮件的示例代码如下
#!/usr/bin/python# -- coding: UTF-8 --
import smtplib
from emailmimetext import MIMEText
from emailutils import formataddr
my_sender='429240967@qqcom' # 发件人邮箱账号
my_pass = 'xxxxxxxxxx' # 发件人邮箱密码
my_user='429240967@qqcom' # 收件人邮箱账号,我这边发送给自己
def mail():
ret=True
try:
msg=MIMEText('填写邮件内容','plain','utf-8')
msg['From']=formataddr(["FromRunoob",my_sender]) # 括号里的对应发件人邮箱昵称、发件人邮箱账号
msg['To']=formataddr(["FK",my_user]) # 括号里的对应收件人邮箱昵称、收件人邮箱账号
msg['Subject']="菜鸟教程发送邮件测试" # 邮件的主题,也可以说是标题
server=smtplibSMTP("smtpqqcom", 25) # 发件人邮箱中的SMTP服务器,端口是25
serverlogin(my_sender, my_pass) # 括号中对应的是发件人邮箱账号、邮箱密码
serversendmail(my_sender,[my_user,],msgas_string()) # 括号中对应的是发件人邮箱账号、收件人邮箱账号、发送邮件
serverquit() # 关闭连接
except Exception: # 如果 try 中的语句没有执行,则会执行下面的 ret=False
ret=False
return ret
ret=mail()
if ret:
print("邮件发送成功")
else:
print("邮件发送失败")
1、准备两个邮箱帐号,一个是常用的(接收端),另一个可以注册网易163邮箱或者foxmail邮箱也可(发送端),本次我使用两个QQ邮箱进行演示。
2、在邮箱的设置
3、账户中开启SMTP功能,如下图:
4、点击生成授权码,按照d出窗口的提示发送短信,发送后单击我已发送按钮。
5、将生成的授权码复制下来以备接下来使用。如下图:
6、我们来编辑代码:
from emailheader import Header
from emailmimetext import MIMEText
from emailutils import parseaddr,formataddr
import smtplib
def _format_addr(s):
name,addr = parseaddr(s)
return formataddr((Header(name,'utf-8')encode(),addr))
#发件人地址
from_addr = '1010@qqcom'
#密码刚才复制的邮箱的授权码
password = 'ug'
#收件人地址
to_addr = '1028@qqcom'
#邮箱服务器地址
smtp_server = 'smtpqqcom'
#设置邮件信息
msg = MIMEText('Python爬虫运行异常,异常信息为遇到>
msg['From'] = _format_addr('Python爬虫一号<%s>'%from_addr)
msg['To'] = _format_addr('管理员<%s>'%to_addr)
msg['Subject'] = Header('一号爬虫运行异常','utf-8')encode()
#发送邮件
server = smtplibSMTP_SSL(smtp_server,465)
#打印出和SMTP服务器交互的所有信息
serverset_debuglevel(1)
#登录SMTP服务器
serverlogin(from_addr,password)
#sendmail():发送邮件,由于可以一次发给多个人,所以传入一个list邮件正文是一个str,as_string()把MIMEText对象变成str。
serversendmail(from_addr,to_addr,msgas_string())serverquit()print('邮件发送成功!')
7、登录接收端邮箱,查看是否发送成功,如下图:
8、如果能成功收到邮件的话就说明完成了。
邮件传输的SMTP协议,并根据该协议,利用了Python的‘smtplib’和‘email‘模块,完成邮件的成功发送。简单搭的报警邮件服务器没有UI,用FOXMAIL登录获取邮件头删除过慢,写个python脚本快速清空邮件
#!/usr/bin/python
import poplib
def main():
uugame=poplibPOP3('mailurlcom',110)
uugameuser('dicc@urlcom')
uugamepass_('dicc1234')
print uugamestat()
mailmax=uugamestat()[0]
for i in range(mailmax):
uugamedele(i+1)
print uugamestat()
uugamequit()
if __name__=="__main__":
main()引用头文件
#!/usr/bin/env python
#--coding:utf-8--
import smtplib
import os
from emailmimetext import MIMEText
from emailmimemultipart import MIMEMultipart
from emailmimebase import MIMEBase
from email import encoders
创建“连接邮件服务器”函数
def smtp_connect( smtp_server, account, password, target ):
global smtp
global e_smtpserver
global e_account
global e_password
global e_target
global msg
e_smtpserver = smtp_server
e_account = account
e_password = password
e_target = target
try:
smtp = smtplibSMTP()
smtpconnect(e_smtpserver)
smtplogin(e_account, e_password)
except Exception, e:
print 'Mail connect failed: %s' % e
exit( -1 )
msg = MIMEMultipart('related')
创建“写邮件内容”函数
def smtp_set_content( subject, main_body ):
global msg
msg['Subject'] = subject
body = MIMEText( main_body, 'plain', 'utf-8' )
msgattach( body )
创建“添加附件”函数
def smtp_set_attachment( file_path ):
global msg
part = MIMEBase( 'application', 'octet-stream' )
partset_payload( open(file_path,'rb')read() )
encodersencode_base64(part)
partadd_header( 'Content-Disposition', 'attachment; filename=%s' % file_pathsplit('/')[-1] )
msgattach(part)
创建“发送邮件”函数
def smtp_send():
global smtp
global e_smtpserver
global e_account
global e_password
global e_target
global msg
try:
smtpsendmail( e_account, e_target, msgas_string() )
except Exception, e:
print 'Mail send Failed: %s' % e
exit( -1 )
使用示例
if __name__ == '__main__':
smtp_connect( 'smtpxxxxcomcn', 'xxxx@xxxxcomcn', 'password',
'xxxx@xxxxcomcn' )
smtp_set_content( 'Test subject', 'Test_content' )
smtp_set_attachment( osgetcwd() + '/mailpy' )
smtp_send()
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)