Python SMTP傳送郵件
SMPT
SMTP(Simple Mail Transfer Protocol)即簡單郵件傳輸協議,它是一組用於由源地址到目的地址傳送郵件的規則,由它來控制信件的中轉方式。
python的smtplib提供了一種很方便的途徑傳送電子郵件。它對smtp協議進行了簡單的封裝。
Python建立 SMTP 物件語法如下:
import smtplib
smtpObj = smtplib.SMTP( [host [, port [, local_hostname]]] )
引數說明:
- host: SMTP 伺服器主機。 你可以指定主機的ip地址或者域名如: runoob.com,這個是可選引數。
- port: 如果你提供了 host 引數, 你需要指定 SMTP 服務使用的埠號,一般情況下 SMTP 埠號為25。
- local_hostname: 如果 SMTP 在你的本機上,你只需要指定伺服器地址為 localhost 即可。
Python SMTP
Python SMTP 物件使用 sendmail 方法傳送郵件,語法如下:
SMTP.sendmail(from_addr, to_addrs, msg[, mail_options, rcpt_options])
引數說明:
- from_addr: 郵件傳送者地址。
- to_addrs: 字串列表,郵件傳送地址。
- msg: 傳送訊息
這裡要注意一下第三個引數,msg 是字串,表示郵件。我們知道郵件一般由標題,發信人,收件人,郵件內容,附件等構成,傳送郵件的時候,要注意 msg 的格式。這個格式就是 smtp 協議中定義的格式。
網易163免費郵箱相關伺服器資訊:
使用Python傳送HTML格式的郵件
#!/usr/bin/python
# -*- coding: UTF-8 -*-
import argparse
import smtplib
from email.mime.text import MIMEText
from email.utils import formataddr
parser = argparse.ArgumentParser(description='send mail ...')
parser.add_argument('-f', required=True, nargs='+', help='sender email')
parser.add_argument('-p', required=True, nargs='+', help='sender email passwd')
parser.add_argument('-t', required=True, nargs='+', help='seceivers email')
parser.add_argument('-s', required=True, nargs='+', help='email subject')
parser.add_argument('-b', required=True, nargs='+', help='email html file')
args = parser.parse_args()
my_sender = args.f[0] # 發件人郵箱賬號
my_pass = args.p[0] # 發件人郵箱密碼
my_user = args.t[0] # 收件人郵箱賬號
my_user_list = my_user.split(",") # 收件人郵箱賬號
email_subject = args.s[0] # 郵件主題
html_file = args.b[0] # 郵件HTML
report_html = open(html_file, "r")
mail_msg = report_html.read()
def mail():
ret = True
try:
msg = MIMEText(mail_msg,'html','utf-8')
msg['From'] = my_sender
msg['To'] = ",".join(my_user_list)
msg['Subject'] = email_subject
# 發件人郵箱中的SMTP伺服器,埠是25
server = smtplib.SMTP("smtp.163.com'", 25)
# 列印出和SMTP伺服器互動的所有資訊
server.set_debuglevel(1)
# 括號中對應的是發件人郵箱賬號、郵箱密碼
server.login(my_sender, my_pass)
# 括號中對應的是發件人郵箱賬號、收件人郵箱賬號、傳送郵件
server.sendmail(my_sender, my_user_list, msg.as_string())
# 關閉連線
server.quit()
# 如果 try 中的語句沒有執行,則會執行下面的 ret=False
except Exception:
ret = False
return ret
ret = mail()
if ret:
print("郵件傳送成功")
else:
print("郵件傳送失敗")
html
<html>
<body>
<table border=1 bgcolor=538DD5 width=40%>
<tr align=center><td>This is test email</td></tr>
</table>
<table border=1 bgcolor=F3E2A9 width=40%>
<tr align=center><th>hello world</th></tr>
<table border=1 bgcolor=CCCCCC width=40%>
<tr align=center>
<th>序號</th>
<th>url</th>
</tr>
<tr align=center>
<td>1</td>
<td><a href=https://www.baidu.com>百度一下</a></td>
</tr>
<tr align=center>
<td>2</td>
<td><a href=https://www.qq.com>騰訊</a></td>
</tr>
</table>
</body>
</html>
執行
python send_mail.py -f "zhangsan@163.com" -p "**********" -t "zhangsan@163.cn,lisi@163.com,wangmazi@qq.com" -s "this is test email" -b "test.html"
結果
相關文章
- 在Python如何使用SMTP傳送郵件Python
- Jmeter——SMTP Sampler傳送郵件JMeter
- python實現基於smtp傳送郵件Python
- 配置mail使用SMTP傳送郵件AI
- 【python】用SMTP模組傳送帶附件的郵件Python
- 軟體測試學習教程——Python SMTP傳送郵件Python
- SMTP操作使用詳解並透過python進行smtp郵件傳送示例Python
- 一次性解決python smtp 傳送outlook郵件,163郵件,qq郵件等等.Python
- python傳送郵件Python
- WPForms和 WP Mail SMTP – 最好的WordPress SMTP郵件傳送外掛ORMAI
- SMTP協議解讀以及如何使用SMTP協議傳送電子郵件協議
- Linux 上使用 Gmail SMTP 伺服器傳送郵件通知LinuxAI伺服器
- 一次郵件傳送協議SMTP問題排查協議
- python SMTP郵件服務Python
- python實現傳送郵件Python
- SpringBoot整合Mail傳送郵件&傳送模板郵件Spring BootAI
- Python_smtp 郵件互動Python
- 傳送郵件
- 郵件傳送
- python實現郵件的傳送Python
- SpringBoot傳送郵件Spring Boot
- phpcms傳送郵件PHP
- 郵件的傳送
- Laravel傳送郵件Laravel
- Laravel 傳送郵件Laravel
- thinkjs 傳送郵件JS
- PHP傳送郵件PHP
- nodejs 傳送郵件NodeJS
- java郵件傳送Java
- Django——郵件傳送Django
- gmail傳送郵件AI
- SpringBoot郵件傳送Spring Boot
- Python 傳送郵件的幾種方式Python
- Python 傳送帶有附件的郵件Python
- Java Mail 郵件傳送(二):簡單封裝的郵件傳送JavaAI封裝
- 使用Python批次傳送個性化郵件Python
- Python 實現郵件傳送功能(進階)Python
- Python 實現郵件傳送功能(初級)Python