当前位置:首页 » 编程语言 » pythonsmtp服务器搭建

pythonsmtp服务器搭建

发布时间: 2022-04-21 10:01:57

A. python,使用smtp发送邮件,求实例

from smtplib import SMTP
from RuckusAutoTest.models import TestCase
from email.MIMEMultipart import MIMEMultipart
from email.mime.application import MIMEApplication

def sendFildByMail(config):
print 'Preparing...',
message = MIMEMultipart( )
message['from'] = config['from']
message['to'] = config['to']
message['Reply-To'] = config['from']
message['Subject'] = config['subject']
message['Date'] = time.ctime(time.time())
message['X-Priority'] = '3'
message['X-MSMail-Priority'] = 'Normal'
message['X-Mailer'] = 'Microsoft Outlook Express 6.00.2900.2180'
message['X-MimeOLE'] = 'Proced By Microsoft MimeOLE V6.00.2900.2180'

f=open(config['file'], 'rb')
file = MIMEApplication(f.read())
f.close()
file.add_header('Content-Disposition', 'attachment', filename= os.path.basename(config['file']))
message.attach(file)
print 'OK'
print 'Logging...',
smtp = SMTP(config['server'])#, config['port'])
smtp.ehlo()
smtp.starttls()
smtp.ehlo()
smtp.login(config['username'], config['password'])
print 'OK'
print 'Sending...',
smtp.sendmail (config['from'], [config['from'], config['to']], message.as_string())
print 'OK'
smtp.close()
time.sleep(1)

sendFildByMail({
'from': '[email protected]',
'to': '[email protected]',
'subject': ''This is an email test!',
'server': '123.125.50.132',
'username': 'username',
'password': 'password'})
可以注册一个163邮箱试一下,是可以发邮件的。
在sendFildByMail这个函数里填上正确的参数,from是从哪个邮箱发送,也就是刚注册的163邮箱,to是发送到哪个邮箱,可以填另一个邮箱来检查是否能接收邮件,server不要改,这是163的地址;username和password那里填写163邮箱的用户名和密码。

希望能帮到你,有疑问请追问!

B. 如何用python发送email

python中email模块使得处理邮件变得比较简单,今天着重学习了一下发送邮件的具体做法,这里写写自己的的心得,也请高手给些指点。
一、相关模块介绍
发送邮件主要用到了smtplib和email两个模块,这里首先就两个模块进行一下简单的介绍:
1、smtplib模块
smtplib.SMTP([host[, port[, local_hostname[, timeout]]]])
SMTP类构造函数,表示与SMTP服务器之间的连接,通过这个连接可以向smtp服务器发送指令,执行相关操作(如:登陆、发送邮件)。所有参数都是可选的。
host:smtp服务器主机名
port:smtp服务的端口,默认是25;如果在创建SMTP对象的时候提供了这两个参数,在初始化的时候会自动调用connect方法去连接服务器。
smtplib模块还提供了SMTP_SSL类和LMTP类,对它们的操作与SMTP基本一致。
smtplib.SMTP提供的方法:
SMTP.set_debuglevel(level):设置是否为调试模式。默认为False,即非调试模式,表示不输出任何调试信息。
SMTP.connect([host[, port]]):连接到指定的smtp服务器。参数分别表示smpt主机和端口。注意: 也可以在host参数中指定端口号(如:smpt.yeah.net:25),这样就没必要给出port参数。
SMTP.docmd(cmd[, argstring]):向smtp服务器发送指令。可选参数argstring表示指令的参数。
SMTP.helo([hostname]) :使用"helo"指令向服务器确认身份。相当于告诉smtp服务器“我是谁”。
SMTP.has_extn(name):判断指定名称在服务器邮件列表中是否存在。出于安全考虑,smtp服务器往往屏蔽了该指令。
SMTP.verify(address) :判断指定邮件地址是否在服务器中存在。出于安全考虑,smtp服务器往往屏蔽了该指令。
SMTP.login(user, password) :登陆到smtp服务器。现在几乎所有的smtp服务器,都必须在验证用户信息合法之后才允许发送邮件。
SMTP.sendmail(from_addr, to_addrs, msg[, mail_options, rcpt_options]) :发送邮件。这里要注意一下第三个参数,msg是字符串,表示邮件。我们知道邮件一般由标题,发信人,收件人,邮件内容,附件等构成,发送邮件的时候,要注意msg的格式。这个格式就是smtp协议中定义的格式。
SMTP.quit() :断开与smtp服务器的连接,相当于发送"quit"指令。(很多程序中都用到了smtp.close(),具体与quit的区别google了一下,也没找到答案。)
2、email模块
emial模块用来处理邮件消息,包括MIME和其他基于RFC 2822 的消息文档。使用这些模块来定义邮件的内容,是非常简单的。其包括的类有:
class email.mime.base.MIMEBase(_maintype, _subtype, **_params):这是MIME的一个基类。一般不需要在使用时创建实例。其中_maintype是内容类型,如text或者image。_subtype是内容的minor type 类型,如plain或者gif。 **_params是一个字典,直接传递给Message.add_header()。
class email.mime.multipart.MIMEMultipart([_subtype[, boundary[, _subparts[, _params]]]]:MIMEBase的一个子类,多个MIME对象的集合,_subtype默认值为mixed。boundary是MIMEMultipart的边界,默认边界是可数的。
class email.mime.application.MIMEApplication(_data[, _subtype[, _encoder[, **_params]]]):MIMEMultipart的一个子类。
class email.mime.audio. MIMEAudio(_audiodata[, _subtype[, _encoder[, **_params]]]): MIME音频对象
class email.mime.image.MIMEImage(_imagedata[, _subtype[, _encoder[, **_params]]]):MIME二进制文件对象。
class email.mime.message.MIMEMessage(_msg[, _subtype]):具体的一个message实例,使用方法如下:

msg=mail.Message.Message() #一个实例
msg['to']='[email protected]' #发送到哪里
msg['from']='[email protected]' #自己的邮件地址
msg['date']='2012-3-16' #时间日期
msg['subject']='hello world' #邮件主题

class email.mime.text.MIMEText(_text[, _subtype[, _charset]]):MIME文本对象,其中_text是邮件内容,_subtype邮件类型,可以是text/plain(普通文本邮件),html/plain(html邮件), _charset编码,可以是gb2312等等。
二、几种邮件的具体实现代码
1、普通文本邮件
普通文本邮件发送的实现,关键是要将MIMEText中_subtype设置为plain。首先导入smtplib和mimetext。创建smtplib.smtp实例,connect邮件smtp服务器,login后发送,具体代码如下:(python2.6下实现)

# -*- coding: UTF-8 -*-
'''
发送txt文本邮件
小五义:
'''
import smtplib
from email.mime.text import MIMEText
mailto_list=[[email protected]]
mail_host="smtp.XXX.com" #设置服务器
mail_user="XXXX" #用户名
mail_pass="XXXXXX" #口令
mail_postfix="XXX.com" #发件箱的后缀

def send_mail(to_list,sub,content):
me="hello"+"<"+mail_user+"@"+mail_postfix+">"
msg = MIMEText(content,_subtype='plain',_charset='gb2312')
msg['Subject'] = sub
msg['From'] = me
msg['To'] = ";".join(to_list)
try:
server = smtplib.SMTP()
server.connect(mail_host)
server.login(mail_user,mail_pass)
server.sendmail(me, to_list, msg.as_string())
server.close()
return True
except Exception, e:
print str(e)
return False
if __name__ == '__main__':
if send_mail(mailto_list,"hello","hello world!"):
print "发送成功"
else:
print "发送失败"

2、html邮件的发送
与text邮件不同之处就是将将MIMEText中_subtype设置为html。具体代码如下:(python2.6下实现)

# -*- coding: utf-8 -*-
'''
发送html文本邮件

'''
import smtplib
from email.mime.text import MIMEText
mailto_list=["[email protected]"]
mail_host="smtp.XXX.com" #设置服务器
mail_user="XXX" #用户名
mail_pass="XXXX" #口令
mail_postfix="XXX.com" #发件箱的后缀

def send_mail(to_list,sub,content): #to_list:收件人;sub:主题;content:邮件内容
me="hello"+"<"+mail_user+"@"+mail_postfix+">" #这里的hello可以任意设置,收到信后,将按照设置显示
msg = MIMEText(content,_subtype='html',_charset='gb2312') #创建一个实例,这里设置为html格式邮件
msg['Subject'] = sub #设置主题
msg['From'] = me
msg['To'] = ";".join(to_list)
try:
s = smtplib.SMTP()
s.connect(mail_host) #连接smtp服务器
s.login(mail_user,mail_pass) #登陆服务器
s.sendmail(me, to_list, msg.as_string()) #发送邮件
s.close()
return True
except Exception, e:
print str(e)
return False
if __name__ == '__main__':
if send_mail(mailto_list,"hello","<a href=''>小五义</a>"):
print "发送成功"
else:
print "发送失败"

3、发送带附件的邮件
发送带附件的邮件,首先要创建MIMEMultipart()实例,然后构造附件,如果有多个附件,可依次构造,最后利用smtplib.smtp发送。

# -*- coding: cp936 -*-
'''
发送带附件邮件

'''

from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart
import smtplib

#创建一个带附件的实例
msg = MIMEMultipart()

#构造附件1
att1 = MIMEText(open('d:\\123.rar', 'rb').read(), 'base64', 'gb2312')
att1["Content-Type"] = 'application/octet-stream'
att1["Content-Disposition"] = 'attachment; filename="123.doc"'#这里的filename可以任意写,写什么名字,邮件中显示什么名字
msg.attach(att1)

#构造附件2
att2 = MIMEText(open('d:\\123.txt', 'rb').read(), 'base64', 'gb2312')
att2["Content-Type"] = 'application/octet-stream'
att2["Content-Disposition"] = 'attachment; filename="123.txt"'
msg.attach(att2)

#加邮件头
msg['to'] = '[email protected]'
msg['from'] = '[email protected]'
msg['subject'] = 'hello world'
#发送邮件
try:
server = smtplib.SMTP()
server.connect('smtp.XXX.com')
server.login('XXX','XXXXX')#XXX为用户名,XXXXX为密码
server.sendmail(msg['from'], msg['to'],msg.as_string())
server.quit()
print '发送成功'
except Exception, e:
print str(e)

4、利用MIMEimage发送图片

# -*- coding: cp936 -*-
import smtplib
import mimetypes
from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart
from email.mime.image import MIMEImage

def AutoSendMail():
msg = MIMEMultipart()
msg['From'] = "[email protected]"
msg['To'] = "[email protected]"
msg['Subject'] = "hello world"

txt = MIMEText("这是中文的邮件内容哦",'plain','gb2312')
msg.attach(txt)

file1 = "C:\\hello.jpg"
image = MIMEImage(open(file1,'rb').read())
image.add_header('Content-ID','<image1>')
msg.attach(image)

server = smtplib.SMTP()
server.connect('smtp.XXX.com')
server.login('XXX','XXXXXX')
server.sendmail(msg['From'],msg['To'],msg.as_string())
server.quit()

if __name__ == "__main__":
AutoSendMail()

利用MIMEimage发送图片,原本是想图片能够在正文中显示,可是代码运行后发现,依然是以附件形式发送的,希望有高手能够指点一下,如何可以发送在正文中显示的图片的邮件,就是图片是附件中存在,但同时能显示在正文中,具体形式如下图。

C. python smtplib怎么设置smtp

定义如下:
"""From:[email protected]
To:[email protected]
Subject:test
mail
test mail
body"""
SMTP.starttls([keyfile[,certfile]])方法,启用TLS(安全传输)模式,所有SMTP指令都讲加密传输,例如使用gmail的stmp服务器时需要启动此项才能正常发送邮件
SMTP.quit()方法,端口smtp服务器的连接

D. 如何用 python 搭建一个邮件服务器

利用Python自带的包可以建立简单的web服务器。在DOS里cd到准备做服务器根目录的路径下,输入命令:
python -m Web服务器模块 [端口号,默认8000]
例如:
python -m SimpleHTTPServer 8080
然后就可以在浏览器中输入
h ttp://loca lhost:端口号/路径
访问服务器资源。
例如:
h ttp://local host:808 0/index.h tm(当然index.htm文件得自己创建)
其他机器也可以通过服务器的IP地址来访问。

E. 怎样自己搭建一个邮件服务器

Foxmail Server(以下简称FMS)可以搭建出功能强大的邮件服务器。本文以FMS For Windows 2.0为例,从其设置、管理、收发邮件等几方面入手为大家简单介绍该软件的使用方法及注意事项。 ★安装和设置邮件服务器

FMS2.0要求操作系统Windows NT4.0(Service Pack4以上)和IIS5.0及以上版本的支持才能实现全部功能,并且还应以Administrator身份登录计算机。我们的讨论则是基于Windows Server 2000+IIS5.0的试验环境。FMS的安装过程比较简单,这里不再赘述,我们重点谈谈它的设置过程。

一、设置域名和管理员口令

程序安装完毕后,自动进入设置向导。单击“下一步”按钮,即可进入“应用程序设置”窗口。在这里我们可以设置用户信箱的域名(即用户E-mail地址中@字符的后缀部分)和管理员口令。您可以向域名管理机构申请合法的域名。但是如果通信范围仅限于局域网内部,也可以通过内部的DNS服务器建立一个邮件服务器专用的域名。为叙述方便,我们使用了本机的机器名作为域名(在命令行窗口中键入“hostname”命令就能得到本机的机器名),本例中的机器名为CHHUIAN。然后设置系统管理员口令和邮箱密码以及域管理员口令和邮箱密码,以后在管理系统和域时会用到两个管理员口令(图1)。

二、设置网络参数

域名和管理员口令设置完成后,单击“下一步”按钮进入“网络设置”窗口。在这里可以设定DNS地址、SMTP端口、POP3端口等信息。DNS地址栏中应该填入当地电信部门或您所在的ISP提供的DNS地址,当然如果您只是在局域网内部通信且使用机器名作为域名,则只需填入服务器IP地址即可。本例中的DNS地址为本机IP地址“10.115.223.10”。SMTP端口和POP3端口应该采用默认参数,不过在这里可能会遇到SMTP端口或POP3端口被占用的问题。我们应按照提示停止某些程序对该端口的占用,并且保证以后在运行FMS时这些应用程序始终被关闭。该窗口最下边有一个关于Esmtp的可选项,这是一种身份认证功能,与客户端的“SMTP服务器需要身份认证”配合使用,可以杜绝垃圾邮件的侵袭(图2)。

小提示:一般情况下很容易出现SMTP端口被占用的情况,其原因是�袅薎IS自带的SMTP服务。这时只需在IIS属性对话框中将SMTP服务停止即可解决

F. 如何在本地搭建一个SMTP服务器啊

smtp服务是非常简单的是一个邮件发送功能你只需要安装iis就可以选择安装smtp服务啊装完之后不需要配置就可以用了当然需要有邮件收发的客户端或者邮件发送的程序

G. 如何搭建本地smtp服务器

一、安装POP3和SMTP服务组件
Windows Server 2003默认情况下是没有安装POP3和SMTP服务组件的,因此要手工添加。

1.安装POP3服务组件
以系统管理员身份登录Windows Server 2003 系统。依次进入“控制面板→添加或删除程序→添加/删除Windows组件”,在弹出的“Windows组件向导”对话框中选中“电子邮件服务”选项,点击“详细信息”按钮,可以看到该选项包括两部分内容:POP3服务和POP3服务Web管理。为方便用户远程Web方式管理邮件服务器,建议选中“POP3服务Web管理”。

2.安装SMTP服务组件
选中“应用程序服务器”选项,点击“详细信息”按钮,接着在“Internet信息服务(IIS)”选项中查看详细信息,选中“SMTP Service”选项,最后点击“确定”按钮。此外,如果用户需要对邮件服务器进行远程Web管理,一定要选中“万维网服务”中的“远程管理(HTML)”组件。完成以上设置后,点击“下一步”按钮,系统就开始安装配置POP3和SMTP服务了。

二、配置POP3服务器
1.创建邮件域
点击“开始→管理工具→POP3服务”,弹出POP3服务控制台窗口。选中左栏中的POP3服务后,点击右栏中的“新域”,弹出“添加域”对话框,接着在“域名”栏中输入邮件服务器的域名,也就是邮件地址“@”后面的部分,如“rtj.net”,最后点击“确定”按钮。其中“rtj.net”为在Internet上注册的域名,并且该域名在DNS服务器中设置了MX邮件交换记录,解析到Windows Server 2003邮件服务器IP地址上。

2.创建用户邮箱
选中刚才新建的“rtj.net”域,在右栏中点击“添加邮箱”,弹出添加邮箱对话框,在“邮箱名”栏中输入邮件用户名,然后设置用户密码,最后点击“确定”按钮,完成邮箱的创建。

三、配置SMTP服务器
完成POP3服务器的配置后,就可开始配置SMTP服务器了。点击“开始→程序→管理工具→Internet信息服务(IIS)管理器”,在“IIS管理器”窗口中右键点击“默认SMTP虚拟服务器”选项,在弹出的菜单中选中“属性”,进入“默认SMTP虚拟服务器”窗口,切换到“常规”标签页,在“IP地址”下拉列表框中选中邮件服务器的IP地址即可。点击“确定”按钮,这样一个简单的邮件服务器就架设完成了。

完成以上设置后,用户就可以使用邮件客户端软件连接邮件服务器进行邮件收发工作了。在设置邮件客户端软件的SMTP和POP3服务器地址时,输入邮件服务器的域名“rtj.net”即可。

H. 有自己的域名,想架设自己的SMTP服务器怎么搞

如果你经验不是很多的话,可以用Cmail Server。网上有破解版的,我原来用来着,挺好的。

家庭局域网如果是通过ADSL等动态IP上网的。由于IP地址时常变动,所以最好使用动态域名。网上有一种花生壳的软件可以免费做动态域名解析。他们会给你绑定一个免费的三级域名,当你掉线或者IP更换的时候客户端会自动向逐级汇报更改这个域名的解析。而你要做的只是把你的域名的MX地址填写这个免费的三级域名即可。注意许多DNS节后台需要以“.”结尾。

I. 如何用自己的电脑搭建一个SMTP服务器

你很有想法,不如……。

其实我想说,就想让你搭成了,能发了,人家收不收你邮件也是个事哦。

热点内容
安卓自带的剪辑软件哪个好用 发布:2025-01-24 22:15:22 浏览:391
centosyumphpfpm 发布:2025-01-24 22:14:19 浏览:154
反编译看不懂代码 发布:2025-01-24 22:04:52 浏览:139
zip4j加密 发布:2025-01-24 21:57:57 浏览:455
安卓录屏功能在哪里找到 发布:2025-01-24 21:55:24 浏览:651
ip参数用哪个服务器设置 发布:2025-01-24 21:46:27 浏览:924
快捷方式缓存 发布:2025-01-24 21:28:35 浏览:826
22款途观l买哪个配置最合适 发布:2025-01-24 21:28:33 浏览:235
ajax跨域访问wcf 发布:2025-01-24 21:08:21 浏览:663
iphonecpp编译器 发布:2025-01-24 21:05:52 浏览:202