python smtp发送邮件件,参数应该怎么配置

博客访问: 282749
博文数量: 58
博客积分: 1520
博客等级: 上尉
技术积分: 621
注册时间:
IT168企业级官微
微信号:IT168qiye
系统架构师大会
微信号:SACC2013
分类: LINUX
mail命令是LINUX下一个非常轻巧的交互式的命令行邮件客户端,基于Berkeley Mail 8.1,提供MIME, IMAP, POP3, SMTP和S/MIME等扩展。今天周五,不想工作,特研究研究这个小玩具,看能不能写个脚本调用它定时给俺发发邮件,监控下服务器的状态。mail命令收信配置&& &&&& 这个以后补啊,今天没有需求,不折腾她鸟,:)mail命令发信配置&& &&&& mail默认是调用本机MTA发送邮件的,这意味着需要在本机上安装sendmail或postfix或exim或...,这让我很不爽啊,占用资源不说,多开个端口就多一份不安全,像我这样的菜鸟,要是遇到了一个红客或黑客或骇客,那不是死翘翘了?&& &&&& 我得找找mail是怎么支持SMTP的,翻了源码看了看,有关SMTP的参数都是用变量存着滴,而这些变量是在/etc/mail.rc里设置滴。&& &&&& 与大家平时用的邮件客户端一样,关于SMTP的设置也就那么几个,具体如下:&& &&&& from: 当别人收到邮件时显示的发件人。默认是"当前用户id"@"主机名",所以极有可能是"root@localhost"哦,至于你这样发出去,会不会被别人家的邮件服务器当垃圾拒收,俺就不随意猜测了。但这样,默认也不方便回复邮件啊,所以还是设置设置吧。&& &&&& smtp: 指定别人家的服务器地址。这个相当重要了,俺折腾这个,就是想占便宜用别人的服务器发邮件,肿么能不设置呢?&& &&&& smtp-auth: 指定SMTP的认证方式。如果你不设置的话,默认是LOGIN方式,当然你可以根据需要改成CRAM-MD5或PLAIN方式。&& &&&& smtp-auth-user: 指定用户名。&& &&&& smtp-auth-password: 指定密码。&& &&&& 用新浪的邮箱测试一下。&& &&&& 把以下这段设置加在/etc/mail.rc里。&& &&&& set from=&& &&&& set smtp=smtp://:25&& &&&& set smtp-auth-user=&& &&&& set smtp-auth-password=我的密码是123,你相信么&& &&&& 调用mail发送一封邮件&& & && [root@fedora ~]# mail -v && &&&& Subject: TEST&& &&&& Message from && &&&& .&& &&&& EOT&& &&&& Resolving host
. . . done.&& &&&& Connecting to 202.108.5.185:25 . . . connected.&& & && 220 irxd5-203..cn ESMTP&& & && >>> EHLO fedora.huabo.org& & & & 250-irxd5-203..cn&& &&&& 250-8BITMIME&& & && 250-SIZE & & & & 250-AUTH PLAIN LOGIN& & & & 250 AUTH=PLAIN LOGIN& & & & >>> AUTH LOGIN& & & & 334 VXNlcm5hbWU6& & & & >>> aHVhYm8yMDA4&& & && 334 UGFzc3dvcmQ6&& & && >>> NTIwMTMxNDMxOA==&& & && 235 #2.0.0 OK Authenticated&& & && >>> MAIL FROM:&& & && 250 sender
ok&& & && >>> RCPT TO:&&&& && 250 recipient
ok&& & && >>> DATA&& & && 354 go ahead&&&& && >>> .& & & & 250 ok:& Message
accepted&& && & >>> QUIT&& & && 221 irxd5-203..cn&& &&&& 一切正常,测试成功了.
阅读(15282) | 评论(0) | 转发(2) |
相关热门文章
给主人留下些什么吧!~~
请登录后评论。smtp发送邮件,参数应该怎么配置_百度知道
smtp发送邮件,参数应该怎么配置
smtp地址设置为smtp服务器地址就可以了。如果需要验证的话,用户名和密码也要填写正确。
其他类似问题
为您推荐:
其他1条回答
添加邮箱地址和帐号,一般默认为25。每个邮箱都有部分不同,填写对应的smtp的端口,可以去了解配置好发送服务器的域名或者IP地址,即可进行smtp发送邮件了,但是都会有详细介绍
您可能关注的推广
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁python中使用smtplib和email模块发送邮件实例
字体:[ ] 类型:转载 时间:
python脚本发邮件,一般会用到smtplib和email这两个模块。看看该模块怎么使用,先看smtplib模块。
smtplib模块定义了一个简单的SMTP客户端,可以用来在互联网上发送邮件
SMTP模块这么多已定义的类中,我们最常用的的还是smtplib.SMTP类,就具体看看该类的用法:smtp实例封装一个smtp连接,它支持所有的SMTP和ESMTP操作指令,如果host和port参数被定义,则smtp会在初始化期间自动调用connect()方法,如果connect()方法失败,则会触发SMTPConnectError异常,timeout参数设置了超时时间。在一般的调用过程中,应该遵connetc()、sendmail()、quit()步骤。
SMTP模块主要方法
下面我们来看看该类的方法: 代码如下:SMTP.set_debuglevel(level)设置输出debug调试信息,默认不输出调试信息。SMTP.docmd(cmd[, argstring])发送一个command到smtp服务器,SMTP.connect([host[, port]])连接到指定的smtp服务器,默认是本机的25端口。也可以写成hostname:port的形式。SMTP.helo([hostname])使用helo指令向smtp服务器确认你的身份。SMTP.ehlo([hostname])使用ehlo指令向esmtp服务器确认你的身份。SMTP.ehlo_or_helo_if_needed()如果在以前的会话连接中没有提供ehlo或者helo指令,这个方法调用ehlo()或者helo()。SMTP.has_extn(name)判断指定的名称是否在smtp服务器上。SMTP.verify(address)判断邮件地址是否在smtp服务器上存在。SMTP.login(user, password)登陆需要验证的smtp服务器,如果之前没有提供ehlo或者helo指令,则会先尝试ESMTP的ehlo指令。SMTP.starttls([keyfile[, certfile]])使smtp连接运行在TLS模式,所有的smtp指令都会被加密。SMTP.sendmail(from_addr, to_addrs, msg[, mail_options, rcpt_options])发送邮件,该方法需要一些邮件地址和消息。SMTP.quit()终止smtp会话并且关闭连接。
经过搜索学习发现网上大多都是用smtp类的sendmail这个方法来发邮件,那就先看看这个例子:
使用sendmail发送邮件 代码如下:import smtplibimport timefrom email.message import Messagefrom time import sleepimport email.utilsimport base64smtpserver = ''username = ''password = 'password 'from_addr = ''to_addr = ''cc_addr = ''time = email.utils.formatdate(time.time(),True)message = Message()message['Subject'] = 'Mail Subject'message['From'] = from_addrmessage['To'] = to_addrmessage['Cc'] = cc_addrmessage.set_payload('mail content '+time)msg = message.as_string()sm = smtplib.SMTP(smtpserver,port=587,timeout=20)sm.set_debuglevel(1)sm.ehlo()sm.starttls()sm.ehlo()sm.login(username, password)sm.sendmail(from_addr, to_addr, msg)sleep(5)sm.quit()
Email模块如果想在邮件中携带附件、使用html书写邮件,附带图片等等,就需要使用email模块及其子模块。下面来看看email包,email包是用来管理email信息的,它包括MIME和其他基于RFC 2822的消息格式。email包的主要特征是在它内部解析和生成email信息是分开的模块来实现的。
MIME消息由消息头和消息体两大部分组成,在邮件里就是邮件头和邮件体。邮件头与邮件体之间以空行进行分隔。
邮件头包含了发件人、收件人、主题、时间、MIME版本、邮件内容的类型等重要信息。每条信息称为一个域,由域名后加“: ”和信息内容构成,可以是一行,较长的也可以占用多行。域的首行必须“顶头”写,即左边不能有空白字符(空格和制表符);续行则必须以空白字符打头,且第一个空白字符不是信息本身固有的。
邮件体包含邮件的内容,它的类型由邮件头的“Content-Type”域指出。最常见的类型有text/plain(纯文本)和text/html(超文本)。邮件体被分为多个段,每个段又包含段头和段体两部分,这两部分之间也以空行分隔。常见的multipart类型有三种:multipart/mixed, multipart/related和multipart/alternative。在email的包里面包含了很多模块: 代码如下:email.messageemail.parseremail.generatoremail.mime 创建email和MIME对象email.headeremail.charsetemail.encodersemail.ereorsemail.utilsemail.iterators
主要来看看email.mime,在邮件中携带附件、图片、音频时,主要使用的是该模块。一般情况下,你通过解析一个文件或者一段text来生成一个消息对象结构,你也可以从头开始建立一个消息结构,实际上,你可以给一个已经存在的消息结构追加一个新的消息对象。你可以通过创建message实例来创建一个对象结构,然后给该结构追加附件和头部信息。email包提供了一些子类使得该操作变得很容易。模拟在邮件内容中携带图片,如下:
邮件内容中携带图片 代码如下:from email.mime.text import MIMETextfrom email.mime.multipart import MIMEMultipartfrom email.mime.image import MIMEImageimport smtplibfrom_mail = ''to_mail = ''msg = MIMEMultipart()msg['From'] = from_mailmsg['To'] = to_mailmsg['Subject'] = 'python mail test'body = 'test img send'con = MIMEText('&b&%s&/b&&img alt="" src="cid:D:\\.jpg" /&' % body,'html')msg.attach(con)img = MIMEImage(file('D:\\.jpg','rb').read())img.add_header('Content-ID','D:\\.jpg')msg.attach(img)server = smtplib.SMTP('')server.docmd('ehol','')server.starttls()server.login('','password')server.sendmail(from_mail,to_mail,msg.as_string())server.quit()
邮件中携带附件
发送带附件的邮件,首先要创建MIMEMultipart()实例,然后构造附件,如果有多个附件,可依次构造,最后利用smtplib.smtp发送模拟在 邮件中携带附件 ,如下: 代码如下:from email.mime.text import MIMETextfrom email.mime.multipart import MIMEMultipartimport smtplib#创建一个带附件的实例msg = MIMEMultipart()txt = MIMEText("这是中文的邮件内容哦",'plain','gb2312')&&& msg.attach(txt)#构造附件1att1 = MIMEText(open('d:\\drcom.rar', 'rb').read(), 'base64', 'gb2312')att1["Content-Type"] = 'application/octet-stream'att1["Content-Disposition"] = ' filename="drcom.rar"'#这里的filename可以任意写,写什么名字,邮件中显示什么名字msg.attach(att1)#构造附件2att2 = MIMEText(open('d:\\123.txt', 'rb').read(), 'base64', 'gb2312')att2["Content-Type"] = 'application/octet-stream'att2["Content-Disposition"] = ' filename="123.txt"'msg.attach(att2)#加邮件头msg['to'] = ''msg['from'] = ''msg['subject'] = 'hello world'&&#发送邮件try:&&& server = smtplib.SMTP()&&& server.connect('')&&& server.starttls()&&& server.login('','xxxxxxxxx')#XXX为用户名,XXXXX为密码&&& server.sendmail(msg['from'], msg['to'],msg.as_string())&&& server.quit()&&& print '发送成功'except Exception, e: &&& print str(e)
您可能感兴趣的文章:
大家感兴趣的内容
12345678910
最近更新的内容
常用在线小工具> 问题详情
在配置一个电子邮件客户程序时,需要配置______。A.SMTP以便可以发送邮件,POP以便可以接收邮件B.PO
悬赏:0&答案豆
提问人:匿名网友
发布时间:
在配置一个电子邮件客户程序时,需要配置______。A.SMTP以便可以发送邮件,POP以便可以接收邮件B.POP以便可以发送邮件,SMTP以便可以接收邮件C.SMTP以便可以发送接收邮件D.POP以便可以发送和接收邮件请帮忙给出正确答案和分析,谢谢!
权威推荐: & &
网友回答(共1条)
匿名网友&&&&lv1&&&&提问收益:0.00&答案豆
在配置一个电子邮件客户程序时,需要配置接受邮件POP服务器地址和发送邮件SMTP服务器地址。
我有更好的答案
您可能感兴趣的试题
1域名服务DNS的主要功能为______。A.通过查询获得主机和网络的相关信息B.查询主机的MAC地址C.查询主机的计算机名D.合理分配IP地址的使用2关于IP地址192.168.0.0~192.168.255.255的正确说法是______。A.它们是标准的IP地址可以从Internet的NIC分配使用B.它们已经被保留在Internet的NIC内部使用,不能够对外分配使用C.它们已经留在美国使用D.它们可以被任何企业用于企业内部网,但是不能够用于Internet
相关考试课程
请先输入下方的验证码查看最佳答案
图形验证:
验证码提交中……沟通关怀交流
Outlook如何进行POP、SMTP设置(pop)
免费邮箱用户:POP3 邮件服务器地址:tv.cn&& 端口:110SMTP邮件服务器地址:tv.cn&& 端口:25
VIP邮箱用户:POP3 邮件服务器地址:tv.cn&& 端口:110SMTP邮件服务器地址:tv.cn&& 端口:25
这里以outlook 2010为例,为您演示如何设定客户端参数。Outlook客户端支持POP3协议收取邮件,具体设置参看以下步骤。
(1)&新建帐号在outlook软件“文件”—“信息”菜单下,找到右方的“添加账户”。
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& 图示1
&&& 单击。
(2)&添加新帐户&&& 选择“电子邮件帐号”服务。
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& 图示2
&&&&点击下一步。
(3)&选择服务&&& 选择“Internet电子邮件”。
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& 图示3
&&&&点击下一步。
(4)&Internet电子邮件帐号设置&&& 在这页用户填写有关信息:&&& 您的姓名:用户自定&&& 电子邮件地址:用户名@ 或&用户名@tv.cn&&& 账户类型:选择POP3&&& 接收邮件服务器:tv.cn 或&tv.cn&&& 发送邮件服务器:tv.cn&或 tv.cn&&& 用户名:用户名@ 或&用户名@tv.cn&&& 密码:用户填写邮箱的登录密码
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& 图示4
&&& 点击“其他设置”。进入其他设置对话框。
&&&&&&&&&&&&&&&&&&&&&&&& 图示5
&&& 选择“发送服务器”&&& 勾选“我的发送服务器(SMTP)要求验证”&&& 点选“使用与接收邮件服务器相同的设置”&&& 点击 确定。&&& 回到上“Internet电子邮件帐号设置”对话框。
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& 图示6
&&& 点击“下一步”。
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&图示7
&&& 邮箱会进行使用前的测试,如果设置正确则通过测试。
(5)&完成&&& 用户通过测试后,客户端显示下图。
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& 图示8
&&&&点击完成。
&&&&&& 设置完成!&
使用在线客服请下载语音控件使用电话客服请拨打010-
&&&&&&&&使用在线语音服务,您必须使用您的电脑和我们的客服人员进行通话。&&&&&&&&请确认您的电脑正确连上耳麦或其他接听设备。}

我要回帖

更多关于 smtp发送邮件 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信