设为首页 收藏本站
查看: 948|回复: 0

[经验分享] HP-UX下使用python发送邮件

[复制链接]

尚未签到

发表于 2015-4-27 06:09:27 | 显示全部楼层 |阅读模式
1 用脚本语言发送邮件是系统管理员必备技能
  对系统定期检查并生成文档和报表是管理员最不喜欢的。
  发布这些文档最快速有效的方法就是发送邮件。
  收集系统信息、格式化信息不在本文讨论。
  目标:通过gmail将信息发送给目标邮箱。
  环境: HP-UX 11i v2,Python 2.5.2
2 实现
2.1 简单发送邮件
  通过Gmail发送,Gmail的SMTP地址为:smtp.gmail.com


import smtplib#导入需要的module
def prompt(prompt):#定义一个目标邮箱输入的函数
    return raw_input(prompt).strip()

mail_server = 'smtp.gmail.com'
mail_server_port = 25
from_addr = 'someone@gmail.com'
to_addr = prompt("To: ").split()#提示输入目标邮箱

from_header = 'From: %s\r\n' % from_addr
to_header = 'To: %s\r\n\r\n' % to_addr
subject_header = 'Subject: nothing interesting'

body = 'This is a new SMTP test mail by SSL.'

email_message = '\n\n\n%s%s%s\n\n%s' % (from_header, to_header, subject_header, body)
#print email_message

s = smtplib.SMTP(mail_server, mail_server_port)#创建SMTP对象
#s.set_debuglevel(1)
s.ehlo()#向Gamil发送SMTP 'ehlo' 命令
s.starttls()#启动TLS模式,Gmail要求
s.login("someone@gmail.com", "123456789")#用户验证
s.sendmail(from_addr, to_addr, email_message)#发送邮件
s.quit()#退出   信息发出。
2.2 MIME邮件发送
  MIME--多功能Internet 邮件扩充服务。有了它就可以发送带主题、发送人、接收人和附件等等信息的邮件。在python中也有具体的实现方法:


  import smtplib,email,os,sys
from email.MIMEBase import MIMEBase
from email.MIMEText import MIMEText
from email.MIMEMultipart import MIMEMultipart
from email import Encoders
from email.header import Header

def prompt(prompt):
    return raw_input(prompt).strip()

mail_server = 'smtp.gmail.com'
mail_server_port = 587
from_addr = 'yourmail@gmail.com'
to_addr = prompt("To: ").split()
attachment = 'demo1.py'

msg = MIMEMultipart()

msg['From'] = from_addr
msg['To'] = str(to_addr)
msg['Subject'] = Header('===MIME Email Demo===', 'utf8')
msg['Reply-To'] = from_addr
print msg.as_string()

email_message = 'this is sent by MIME Demo'

msg.attach(MIMEText(email_message))#, _subtype='html', _charset='utf8',))

fp = open(attachment, 'rb')
part = MIMEBase('application', "octet-stream")
part.set_payload(fp.read())
fp.close()
Encoders.encode_base64(part)
part.add_header('Content-Disposition', 'attachment; filename="%s"' % attachment)
msg.attach(part)

s = smtplib.SMTP(mail_server, mail_server_port)
#s.set_debuglevel(1)
s.ehlo()
s.starttls()
s.login("yourmail@gmail.com", "yourpassword")
s.sendmail(from_addr, to_addr, msg.as_string())
s.quit()  这里创建了MIMEMultipart对象并用它生成需要发送的字符串进行发送,在接受到邮件后会显示对应的发件人、主题等内容。
  (2.2节于2010-4-5更新)
3 结束
  本篇使用Python版本2.5.2,和2.6.*在 starttls()函数中有一些不同,2.6.*中starttls()会自动判断并发送ehlo命令,但是2.5.2中不会,因此需要在执行starttls()之前执行
  ehlo()函数,否则会报错:


smtplib.SMTPException: SMTP AUTH extension not supported by server  
  
  
  
  

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-60891-1-1.html 上篇帖子: python操作gmail 下篇帖子: python实现简易采集爬虫
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表