z解析smtp 使用解析后的每个IP发送一封邮件并携带附件

 1 # coding=utf-8
 2 import smtplib,getpass
 3 import dns.resolver
 4 from email.mime.multipart import MIMEMultipart
 5 from email.mime.text import MIMEText
 6 from email.mime.image import MIMEImage
 7 
 8 
 9 print ("请打开Wireshark 开始抓包\n\n请在“收件箱”后输入接收测试邮件的完整邮箱地址\n")
10 
11 receivers = input ("收件箱:")
12 sss = []
13 domain = 'smtp.163.com'
14 A = dns.resolver.query(domain, 'A')
15 for i in A.response.answer:
16     for j in i.items:
17         sss.append(j.address)
18 for i in sss:
19 #文本 邮件头
20     msg = ''' 这是一封测试邮件 使用SMTP的IP是: %s  ''' % (i)
21     msgRoot = MIMEMultipart('related')
22     msgRoot['Subject'] = 'test message'
23     msgText = MIMEText(msg, 'html', 'utf-8')
24     msgRoot.attach(msgText)
25 #附件
26     fp = open('./2.jpg', 'rb')
27     msgImage = MIMEImage(fp.read())
28     msgImage.add_header('content-disposition', 'attachment', filename='test.jpg')
29     msgRoot.attach(msgImage)
30 #登陆 发送操作
31     server = smtplib.SMTP(i, 25)
32 #邮箱账号密码不公开了
33     server.login('*****@163.com', '******')
34     server.sendmail('*****@163.com', [receivers], msgRoot.as_string())
35     server.quit()

 

 

在当前目录下存放一个附件

 

 

优化:

# coding=utf-8
import smtplib,getpass
import dns.resolver
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
from email.mime.image import MIMEImage


print ("1、打开Wireshark 开始抓包\n注意:需要在当前目录下存放“2.jpg”附件\n\t")

receivers = input ("收件箱:")
sss = []
domain = 'smtp.163.com'
A = dns.resolver.query(domain, 'A')
for i in A.response.answer:
    for j in i.items:
        sss.append(j.address)
for i in sss:
#文本 邮件头
    msg = ''' 这是一封测试邮件 使用SMTP的IP是: %s  ''' % (i)
    msgRoot = MIMEMultipart('related')
    msgRoot['Subject'] = 'test message'
    msgText = MIMEText(msg, 'html', 'utf-8')
    msgRoot.attach(msgText)
#附件
    fp = open('./2.jpg', 'rb')
    msgImage = MIMEImage(fp.read())
    msgImage.add_header('content-disposition', 'attachment', filename='test.jpg')
    msgRoot.attach(msgImage)

#登陆 发送操作
    server = smtplib.SMTP(i ,25)
    server.login('***@163.com', '密码')
    server.sendmail('***@163.com', [receivers], msgRoot.as_string())
    server.quit()

 

posted on 2017-11-21 16:24  蓝码骑士  阅读(133)  评论(0)    收藏  举报

导航