标签:mail res 进制 配置 exce name span log isp
---恢复内容开始---
# 用于发送邮件的模块 import smtplib # QQ邮箱/163邮箱的邮件发送:py文件发送邮件内容相当于一个第三方的客户端,借助于QQ/163邮箱服务器来发送的邮件。 # QQ邮件 # 1> 配置邮箱SMTP服务器的主机地址,将来使用这个服务器收发邮件。 # HOST = ‘smtp.qq.com‘ # # 2> 配置服务的端口,默认的邮件端口是25. # PORT = ‘465‘ # # 3> 指定发件人和收件人。 # FROM = ‘935388739@qq.com‘ # TO = ‘935388739@qq.com‘ # # 4> 邮件标题 # SUBJECT = ‘这是一封测试邮件‘ # # 5> 邮件内容 # CONTENT = ‘这是<1640284366@qq.com>发送过来的邮件。请注意查收!‘ # # # 创建邮件发送对象 # # 普通的邮件发送形式 # # smtp_obj = smtplib.SMTP() # # # 数据在传输过程中会被加密。 # smtp_obj = smtplib.SMTP_SSL() # # # 需要进行发件人的认证,授权。 # # smtp_obj就是一个第三方客户端对象 # smtp_obj.connect(host=HOST, port=PORT) # # # 如果使用第三方客户端登录,要求使用授权码,不能使用真实密码,防止密码泄露。 # res = smtp_obj.login(user=FROM, password=‘zsgncmacktxkbdhb‘) # print(‘登录结果:‘,res) # # # 发送邮件 # msg = ‘\n‘.join([‘From: {}‘.format(FROM), ‘To: {}‘.format(TO), ‘Subject: {}‘.format(SUBJECT), ‘‘, CONTENT]) # smtp_obj.sendmail(from_addr=FROM, to_addrs=[TO], msg=msg.encode(‘utf-8‘)) # 网易163邮箱 HOST = ‘smtp.163.com‘ # 2> 配置服务的端口,默认的邮件端口是25. PORT = ‘25‘ # 3> 指定发件人和收件人。 FROM = ‘15036203230@163.com‘ TO = ‘1264410796@qq.com‘ # 4> 邮件标题 SUBJECT = ‘来自马化腾‘ # 5> 邮件内容 CONTENT = ‘你马上就会毕业‘ # 创建邮件发送对象 # 普通的邮件发送形式 smtp_obj = smtplib.SMTP() # 数据在传输过程中会被加密。 # smtp_obj = smtplib.SMTP_SSL() # 需要进行发件人的认证,授权。 # smtp_obj就是一个第三方客户端对象 smtp_obj.connect(host=HOST, port=PORT) # 如果使用第三方客户端登录,要求使用授权码,不能使用真实密码,防止密码泄露。 res = smtp_obj.login(user=FROM, password=‘lzh7777777‘) print(‘登录结果:‘,res) # 发送邮件 msg = ‘\n‘.join([‘From: {}‘.format(FROM), ‘To: {}‘.format(TO), ‘Subject: {}‘.format(SUBJECT), ‘‘, CONTENT]) smtp_obj.sendmail(from_addr=FROM, to_addrs=TO, msg=msg.encode(‘utf-8‘))
import smtplib from email.mime.text import MIMEText import logging class EmailSend(object): def __init__(self): self.logging = logging.getLogger(‘Waring‘) self.email_host = ‘smtp.qq.com‘ self.email_port = ‘465‘ self.email_pass = ‘zsgncmacktxkbdhb‘ def send_text_email(self, from_addr, to_addrs, subject, content): self.logging.warning(‘send_text_email is willed 丢弃‘) self.logging.error(‘send_text_email is None‘) message_text = MIMEText(content, ‘plain‘, ‘utf8‘) message_text[‘From‘] = from_addr message_text[‘To‘] = to_addrs message_text[‘Subject‘] = subject try: # 在创建客户端对象的同时,连接到邮箱服务器。 client = smtplib.SMTP_SSL(host=self.email_host, port=self.email_port) login_result = client.login(from_addr, self.email_pass) if login_result and login_result[0] == 235: print(‘登录成功‘) client.sendmail(from_addr, to_addrs, message_text.as_string()) print(‘邮件发送成功‘) else: print(‘邮件发送异常:‘,login_result[0], login_result[1]) except Exception as e: # print(‘连接邮箱服务器异常:‘,e) self.logging.error(‘连接邮箱服务器异常:{}‘.format(e)) def send_image_email(self): pass def send_word_email(self): pass def send_video_email(self): pass """ 1. start_spider """
email = EmailSend() content = ‘爬虫启动时间:{}‘.format(datetime.now()) email.send_text_email(‘935388739@qq.com‘, ‘935388739@qq.com‘, ‘爬虫启动‘, content)
推展
# 发送带有附件的邮件。 import smtplib from email.mime.text import MIMEText from email.mime.image import MIMEImage from email.mime.multipart import MIMEMultipart, MIMEBase from email import encoders HOST = "smtp.qq.com" PORT = "465" SUBJECT = "测试邮件" FROM = "15036203230@163.com" TO = "1264410796@qq.com" # 1> 创建用于发送带有附件文件的邮件对象 # related: 邮件内容的格式,采用内嵌的形式进行展示。 message = MIMEMultipart(‘related‘) # 向message对象中添加不同类型的邮件内容。 # 发送内容是html的邮件,邮件中含有图片。 # 参数2:指定邮件内容类型,默认是plain,表示没有任何格式的纯文本内容。 message_html = MIMEText(‘<h1>含有图片的邮件:</h1><p>接下来就会展示这个图片了</p><img src="cid:images">‘, ‘html‘, ‘utf8‘) # 2> 需要将message_html对象,添加至message中,等待被发送。 message.attach(message_html) def load_image(path, cid): data = open(path, ‘rb‘) message_img = MIMEImage(data.read()) data.close() # 给图片绑定cid,将来根据这个cid的值,找到标签内部对应的img标签。 message_img.add_header(‘Content-ID‘, cid) # 返回MIMEImage的对象,将该对象放入message中 return message_img # 向img标签中指定图片 message.attach(load_image(‘scrapy_img.png‘, ‘images‘)) # 文档附件、图片附件等。 # 一般如果数据是二进制的数据格式,在指定第二个参数的时候,都使用base64,一种数据传输格式。 message_docx = MIMEText(open(‘test.docx‘, ‘rb‘).read(), ‘base64‘, ‘utf8‘) # message_docx[‘Content-Disposition‘] = ‘attachment;filename=test.docx‘ message_docx.add_header(‘content-disposition‘, ‘attachment‘, filename=‘mytest.docx‘) message.attach(message_docx) message_docx1 = MIMEText(open(‘测试.docx‘, ‘rb‘).read(), ‘base64‘, ‘utf8‘) # 如果文件名是中文的: # add_header()能够正常的显示中文; # message_docx1[‘Content-Disposition‘]是无法正常显示中文的。 message_docx1[‘Content-Disposition‘] = ‘attachment;filename=测试.docx‘ # message_docx1.add_header(‘content-disposition‘, ‘attachment‘, filename=‘测试.docx‘) message.attach(message_docx1) message_image = MIMEText(open(‘scrapy_img.png‘, ‘rb‘).read(), ‘base64‘, ‘utf8‘) # message_image[‘Content-Disposition‘] = ‘attachment;filename=test.png‘ message_image.add_header(‘content-disposition‘, ‘attachment‘, filename=‘mytest.png‘) message.attach(message_image) message[‘From‘] = FROM message[‘Subject‘] = SUBJECT message[‘To‘] = TO client = smtplib.SMTP_SSL() client.connect(HOST, PORT) print(‘result: ‘,client.login(FROM, ‘zsgncmacktxkbdhb‘)) print(‘发送结果:‘,client.sendmail(from_addr=FROM, to_addrs=[TO], msg=message.as_string()))
---恢复内容结束---
标签:mail res 进制 配置 exce name span log isp
原文地址:https://www.cnblogs.com/eunuch/p/9309175.html