python发送邮件问题

kevin_LCC 2015-07-27 05:30:10
环境说明:
oracle 11.2.0.3 RAC
redhat6.5 enterprise x64
postfix-2.6.6-2.2.el6_1.x86_64
Python 2.6.6

内网有台邮件服务器192.168.1.3可以外发邮件(已经测试可以成功发送邮件到企业邮箱)
在数据库192.168.1.5(节点一)上面telnet 邮件服务器 25端口 可以成功telnet并成功发送邮件
在数据库192.168.1.5(节点一)写python脚本发送数据库日志到企业邮箱
脚本如下:
#!/usr/bin/python
#coding=gbk
#created by zhangsan
#2015/07/20
import os
import sys
import smtplib

FROM_USER='zhangsan@monitor.com'
SMTP_SERVER='192.168.1.3'
EMAIL_USER='zhangsan'
EMAIL_PASSWD='password'
TO_USERS=['lisi@163.com']

def mysendmail(fromaddr,toaddrs,subject,body):
server=smtplib.SMTP(SMTP_SERVER)
server.login(EMAIL_USER,EMAIL_PASSWD)
for toaddr in toaddrs:
msg = 'From: %s/nTo: %s/nSubject: %s/n/n%s/n' % (fromaddr, toaddr, subject, body)
server.sendmail(fromaddr,toaddr,msg)
server.quit()
def load(fname='/home/qiuqiu/test.log'):
fp=open(fname)
log=fp.read()
fp.close()
return log

body=load()
print body
subject='this is a test mail'
mysendmail(FROM_USER,TO_USERS,subject,body)

在数据库192.168.1.5(节点一)执行脚本报错信息:
Traceback (most recent call last):
File "./sendmail.py", line 31, in <module>
mysendmail(FROM_USER,TO_USERS,subject,body)
File "./sendmail.py", line 17, in mysendmail
server.login(EMAIL_USER,EMAIL_PASSWD)
File "/usr/lib64/python2.6/smtplib.py", line 552, in login
raise SMTPException("SMTP AUTH extension not supported by server.")
smtplib.SMTPException: SMTP AUTH extension not supported by server.

邮件服务器192.168.1.3日志如下:
Jul 26 22:53:37 localhost postfix/smtpd[26563]: connect from RAC01[192.168.1.5]
Jul 26 22:53:37 localhost postfix/smtpd[26563]: lost connection after EHLO from RAC01[192.168.1.5]
Jul 26 22:53:37 localhost postfix/smtpd[26563]: disconnect from RAC01[192.168.1.5]

希望能够得到大家的帮助!在此感谢!
kevin
联系邮箱:qrcg92@foxmail.com

...全文
368 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
kevin_LCC 2015-07-28
  • 打赏
  • 举报
回复
你好!在我的脚本里面没有starttls() ,还有些帖子说在发送邮件之前添加ehlo() 和 starttls() ,但是对于我的脚本应该添加在哪里呢?还需要添加什么参数吗?
夏天__ 2015-07-28
  • 打赏
  • 举报
回复
使用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 链接

37,742

社区成员

发帖
与我相关
我的任务
社区描述
JavaScript,VBScript,AngleScript,ActionScript,Shell,Perl,Ruby,Lua,Tcl,Scala,MaxScript 等脚本语言交流。
社区管理员
  • 脚本语言(Perl/Python)社区
  • WuKongSecurity@BOB
加入社区
  • 近7日
  • 近30日
  • 至今

试试用AI创作助手写篇文章吧