免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 3403 | 回复: 5
打印 上一主题 下一主题

python发邮件的初级问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2013-01-03 16:29 |只看该作者 |倒序浏览
原代码:

#!/usr/bin/env python
#coding: utf-8
import socket
name = socket.gethostname()

import smtplib
from email.mime.text import MIMEText
from email.header import Header

sender = 'test@126.com'
receiver = ["test@163.com","test@126.com"]
subject = 'mysql-server alarm'
smtpserver = 'smtp.126.com'
username = 'test'
password = '######'

msg = MIMEText('mysql-server is failed! and now be restarted' ,'plain','utf-8')
msg['Subject'] = Header(subject, 'utf-8')

smtp = smtplib.SMTP()
smtp.connect('smtp.126.com')
smtp.login(username, password)
smtp.sendmail(sender, receiver, msg.as_string())
smtp.quit()


这个代码没问题,工作正常,为了准确表明是由哪个服务器发出的邮件,需要在邮件标题处增加一个主机名,如主机名为WEB1 则邮件标题就变为[WEB1] mysql-server alarm

论坛徽章:
0
2 [报告]
发表于 2013-01-03 17:08 |只看该作者
import socket
name = socket.gethostname()
print name
这个已经可以输出主机名了,就是不知道怎么把这个输出放到邮件标题上去(不懂语法)。

论坛徽章:
1
辰龙
日期:2014-05-22 11:38:58
3 [报告]
发表于 2013-01-03 20:26 |只看该作者
  1. subject = name + 'mysql-server alarm'
复制代码

论坛徽章:
0
4 [报告]
发表于 2013-01-04 08:55 |只看该作者
多谢LS;
这样看起来好多了
subject = '[' + name + ']: mysql-server alarm'

邮件标题变为:
[hostname]:mysql-server alarm

论坛徽章:
0
5 [报告]
发表于 2013-01-07 09:27 |只看该作者
我在python-2.6.x上测试没问题,但在python-2.4.x下测试出错呢?

[root@ns3 ~]# ./a.py
Traceback (most recent call last):
  File "./a.py", line 7, in ?
    from email.mime.text import MIMEText
ImportError: No module named mime.text
[root@ns3 ~]# python -V
Python 2.4.3
[root@ns3 ~]# cat a.py
#!/usr/bin/env python
#coding: utf-8
import socket
name = socket.gethostname()

import smtplib
from email.mime.text import MIMEText
from email.header import Header

sender = 'llzqq@126.com'
receiver = ["llzqq@126.com",]
subject = '[' + name + ']: web-server alarm'
smtpserver = 'smtp.126.com'
username = 'llzqq'
password = 'sdfdssssaaaas'

msg = MIMEText('webserver is failed! and now be restarted','plain','utf-8')
msg['Subject'] = Header(subject, 'utf-8')

smtp = smtplib.SMTP()
smtp.connect('smtp.126.com')
smtp.login(username, password)
smtp.sendmail(sender, receiver, msg.as_string())
smtp.quit()

论坛徽章:
0
6 [报告]
发表于 2013-01-07 10:02 |只看该作者
恩,改成这样可以了,看来PYTHON在不同版本下兼容性差啊

from email.MIMEText import MIMEText
from email.Header import Header
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP