您的位置:首页 > 编程语言 > Python开发

python实现的使用gmail发邮件的代码段

2012-06-15 09:48 507 查看
找到个用python写的使用gmail发邮件的代码,挺好用的,当然错误处理都没做,先记录下来:
View Code

import os
import smtplib
import mimetypes
from email.MIMEMultipart import MIMEMultipart
from email.MIMEBase import MIMEBase
from email.MIMEText import MIMEText
from email.MIMEAudio import MIMEAudio
from email.MIMEImage import MIMEImage
from email.Encoders import encode_base64

def sendMail(subject, text, *attachmentFilePaths):
gmailUser = 'youraccount@gmail.com'
gmailPassword = 'yourpasswd'
recipient = 'mail1@gmail.com;mail2@gmail.com'

msg = MIMEMultipart()
msg['From'] = gmailUser
msg['To'] = recipient
msg['Subject'] = subject
msg.attach(MIMEText(text))

for attachmentFilePath in attachmentFilePaths:
msg.attach(getAttachment(attachmentFilePath))

mailServer = smtplib.SMTP('smtp.gmail.com', 587)
mailServer.ehlo()
mailServer.starttls()
mailServer.ehlo()
mailServer.login(gmailUser, gmailPassword)
mailServer.sendmail(gmailUser, recipient, msg.as_string())
mailServer.close()

print('Sent email to %s' % recipient)

def getAttachment(attachmentFilePath):
contentType, encoding = mimetypes.guess_type(attachmentFilePath)

if contentType is None or encoding is not None:
contentType = 'application/octet-stream'

mainType, subType = contentType.split('/', 1)
file = open(attachmentFilePath, 'rb')

if mainType == 'text':
attachment = MIMEText(file.read())
elif mainType == 'message':
attachment = email.message_from_file(file)
elif mainType == 'image':
attachment = MIMEImage(file.read(),_subType=subType)
elif mainType == 'audio':
attachment = MIMEAudio(file.read(),_subType=subType)
else:
attachment = MIMEBase(mainType, subType)
attachment.set_payload(file.read())
encode_base64(attachment)

file.close()

attachment.add_header('Content-Disposition', 'attachment',   filename=os.path.basename(attachmentFilePath))
return attachment
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: