python傳送郵件

2021-09-01 06:40:23 字數 2782 閱讀 4965

首先安裝sendmail

yum install sendmail

service sendmail start

安裝完成後,sendmail預設可以用localhost來向外面傳送郵件。

用python傳送郵件:參考

例項**如下:

(send_mail.py)

import smtplib

import email

from email.mime.text import mimetext

from email.mime.multipart import mimemultipart

import datetime

import logging

import config

log = logging.getlogger("email")

def _send_mail(to_list,sub,content):

"""to_list: email to who?

sub: email subject

content: email content

send_mail("[email protected]","sub","content")

"""me=config.mail_user+"<"+config.mail_user+"@"+config.mail_postfix+">"

#msg = mimetext(content)

msgroot = mimemultipart('related')

msgroot['subject'] = sub

msgroot['from'] = me

msgroot['to'] = ";".join(to_list)

msgroot['date'] = email.utils.formatdate()

msgroot.preamble = 'this is a message from ***'

msgalt = mimemultipart('alternative')

msgroot.attach(msgalt)

html = content

html_part = mimetext(html, 'html', 'utf-8')

msgalt.attach(html_part)

try:

s = smtplib.smtp()

s.connect(config.mail_host)

#s.login(config.mail_user,config.mail_pass)

s.sendmail(me, to_list, msgroot.as_string())

s.close()

return true

except exception, e:

log.exception(str(e))

print str(e)

return false

def fill_table(content):

text =""" hi,

the following messages are from inconsistency check :

"""head = """"""

end = ""

sub = """time

inconsistency item

database value

actual check result

""" return text + head + sub + content + end

def send_email(content):

t = str(datetime.datetime.now())

subject = "check result: %s" % t

content = fill_table(content)

if _send_mail(config.mailto_list,subject,content):

print "send email success."

log.info("send email:%s success." % subject)

else:

print "send email fail."

log.error("send email:%s fail" % subject)

return

其中config.py的配置如下:

# mail to, multi destinations must split with ',' 

mailto_list = ["[email protected], [email protected]"]

# mail from

mail_host="localhost"

mail_user="root"

mail_postfix="bbb.com" #網域名稱

傳送email的content的格式如下:

直接呼叫send_email(self.email_content)即可傳送。

def _add_email_content(self, output):

t = str(datetime.datetime.now())

content = """%s

%s%s

%s""" % (t, str(output[0]), str(output[1]), str(output[2]))

self.email_content = self.email_content + content

html傳送郵件 Python傳送郵件(三十)

簡單郵件傳輸協議 smtp 是一種協議,用於在郵件伺服器之間傳送電子郵件和路由電子郵件。python提供smtplib模組,該模組定義了乙個smtp客戶端會話物件,可用於使用smtp或esmtp偵聽器守護程式向任何網際網路機器傳送郵件。這是乙個簡單的語法,用來建立乙個smtp物件,稍後將演示如何用它...

python 傳送郵件

coding utf 8 import smtplib from email.mime.text import mimetext from email.header import header 檔案形式的郵件 def email file mail host smtp.qq.com 郵箱伺服器 ma...

python 傳送郵件

smtp mail transfer protocol 即簡單郵件傳輸協議,它是一組用於由源位址到目的位址傳送郵件的規則,由它來控制信件的中轉方式。python的smtplib提供了一種很方便的途徑傳送電子郵件。它對smtp協議進行了簡單的封裝。直接貼 coding utf 8 import smt...