当前位置:首页 » 编程语言 » python3发送邮件

python3发送邮件

发布时间: 2025-10-19 05:37:42

❶ 用python代码给夜曲编程发送一封邮件,并附上你的成绩单图片

为了用Python代码给夜曲编程发送一封邮件,需了解并运用smtplib和email两个Python内置模块。首先,smtplib模块扮演着关键角色,负责实现邮件的连接、登录与发送过程。通过调用相应函数,我们能够实现邮件的顺利投递。

在使用smtplib时,我们通常需要先创建一个SMTP对象,然后使用它来连接邮件服务器,接着进行登录操作。登录成功后,就可以利用该对象发送邮件了。登录细节包括邮件服务器的地址、端口号以及可能需要的账号和密码。

另一方面,email模块则负责邮件内容的整合,包括收发件人、正文和附件等信息。借助email.mime和email.utils等子模块,可以方便地构建邮件的头部信息,定义邮件主题、发件人、收件人等。

构建邮件正文和附件同样依赖于email模块。通过email.mime.multipart.MIMEMultipart实例,可以创建一个包含正文和附件的邮件。正文可以是纯文本、HTML格式或附件链接等。而附件需要使用email.mime.base.MIMEBase或相关子类进行封装,然后添加到邮件中。

在代码实现中,我们需要指定发件人和收件人地址,设置邮件主题,编写邮件正文,选择是否添加附件,并确保邮件格式正确。通过精心构造的代码,邮件将按照设定的参数发送到指定邮箱。

使用Python发送邮件的过程涉及多个步骤,包括服务器连接、登录验证、邮件内容构建和最终的邮件发送。smtplib和email模块提供了强大的工具,使得这一过程变得相对简单。在完成邮件发送后,别忘了检查邮件是否成功送达,并确认其内容是否符合预期。

❷ 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邮箱的用户名和密码。

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

❸ 用Python发送邮件,可以群发,带有多个附件

'''''
函数说明:Send_email_text()函数实现发送带有附件的邮件,可以群发,附件格式包括:xlsx,pdf,txt,jpg,mp3等
参数说明:
1.subject:邮件主题
2.content:邮件正文
3.filepath:附件的地址,输入格式为["","",...]
4.receive_email:收件人地址,输入格式为["","",...]
'''
defSend_email_text(subject,content,filepath,receive_email):
importsmtplib
fromemail.mime.multipartimportMIMEMultipart
fromemail.mime.textimportMIMEText
fromemail.mime.
sender="发送方邮箱"
passwd="填入发送方密码"
receivers=receive_email#收件人邮箱

msgRoot=MIMEMultipart()
msgRoot['Subject']=subject
msgRoot['From']=sender

iflen(receivers)>1:
msgRoot['To']=','.join(receivers)#群发邮件
else:
msgRoot['To']=receivers[0]

part=MIMEText(content)
msgRoot.attach(part)

##添加附件部分
forpathinfilepath:
if".jpg"inpath:
#jpg类型附件
jpg_name=path.split("\")[-1]
part=MIMEApplication(open(path,'rb').read())
part.add_header('Content-Disposition','attachment',filename=jpg_name)
msgRoot.attach(part)

if".pdf"inpath:
#pdf类型附件
pdf_name=path.split("\")[-1]
part=MIMEApplication(open(path,'rb').read())
part.add_header('Content-Disposition','attachment',filename=pdf_name)
msgRoot.attach(part)

if".xlsx"inpath:
#xlsx类型附件
xlsx_name=path.split("\")[-1]
part=MIMEApplication(open(path,'rb').read())
part.add_header('Content-Disposition','attachment',filename=xlsx_name)
msgRoot.attach(part)

if".txt"inpath:
#txt类型附件
txt_name=path.split("\")[-1]
part=MIMEApplication(open(path,'rb').read())
part.add_header('Content-Disposition','attachment',filename=txt_name)
msgRoot.attach(part)

if".mp3"inpath:
#mp3类型附件
mp3_name=path.split("\")[-1]
part=MIMEApplication(open(path,'rb').read())
part.add_header('Content-Disposition','attachment',filename=mp3_name)
msgRoot.attach(part)

try:
s=smtplib.SMTP()
s.connect("smtp.mail.aliyun.com")#这里我使用的是阿里云邮箱,也可以使用163邮箱:smtp.163.com
s.login(sender,passwd)
s.sendmail(sender,receivers,msgRoot.as_string())
print("邮件发送成功")
exceptsmtplib.SMTPExceptionase:
print("Error,发送失败")
finally:
s.quit()

热点内容
小型机算法 发布:2025-10-19 08:16:39 浏览:174
如何用c编程 发布:2025-10-19 08:16:03 浏览:22
linux使用情况 发布:2025-10-19 07:57:38 浏览:46
c编程视频教学 发布:2025-10-19 07:41:13 浏览:326
mac系统怎么解压缩 发布:2025-10-19 07:17:15 浏览:345
数据库操作类型 发布:2025-10-19 07:13:31 浏览:253
php函数合并 发布:2025-10-19 07:00:33 浏览:928
算法循环 发布:2025-10-19 06:40:34 浏览:930
squid代理ftp 发布:2025-10-19 06:25:53 浏览:212
php定义全局变量 发布:2025-10-19 06:21:49 浏览:38