當前位置:首頁 » 編程語言 » pythonsmtp服務

pythonsmtp服務

發布時間: 2022-11-18 16:46:40

1. 如何通過python使用SMTP發送郵件的代碼

https://www.douban.com/note/354362421/
這種方式 郵件里如果有圖片的話 只能以外鏈的形式。缺點是:有的郵件伺服器默認禁用圖片。
https://www.douban.com/note/605625422/
這個是把圖片寫到郵件內容里。

2. 請各位高手指點一下,看看為什麼我按照書中的例子在python下運行互動式smtp,卻提示錯誤,總是

smtp.python.is.cool 這是郵件伺服器的地址
s = smtp('smtp.126.com') #你搞個正常的郵件伺服器地址試試

3. python怎麼安裝sendmail

Python已經被移植在許多平台上(經過改動使它能夠工作在不同平台上)。

您需要下載適用於您使用平台的二進制代碼,然後安裝Python。

如果您平台的二進制代碼是不可用的,你需要使用C編譯器手動編譯源代碼。

編譯的源代碼,功能上有更多的選擇性, 為python安裝提供了更多的靈活性。。。

4. python smtp郵件發送失敗怎麼辦

以下代碼調試通過:

#coding:utf-8
importsmtplib
fromemail.mime.textimportMIMEText
fromemail.headerimportHeader

sender='[email protected]'
receiver='[email protected]'
subject='pythonemailtest'
smtpserver='smtp.139.com'
username='[email protected]'
password='xxxxxx'

msg=MIMEText('你好','text','utf-8')#中文需參數『utf-8',單位元組字元不需要
msg['Subject']=Header(subject,'utf-8')

smtp=smtplib.SMTP()
smtp.connect('smtp.139.com')
smtp.login(username,password)
smtp.sendmail(sender,receiver,msg.as_string())
smtp.quit()

運行效果:

5. python中怎麼實現一次性發多個郵件

首先了解SMTP(簡單郵件傳輸協議),郵件傳送代理程序使用SMTP協議來發送電郵到接收者的郵件伺服器。SMTP協議只能用來發送郵件,不能用來接收郵件,而大多數的郵件發送伺服器都是使用SMTP協議。SMTP協議的默認TCP埠號是25。

本文主要介紹利用'smtplib','email'兩個模塊來實現郵件的發送,可以如下查看兩個模塊的函數和方法:

smtplib模塊簡介:

smtplib.SMTP([host[, port[, local_hostname[, timeout]]]])
此為SMTP類構造函數,表示與SMTP伺服器之間的連接,並根據這個連接向smtp伺服器發送指令,執行相關操作(如:登陸、發送郵件),且每個參數都是可選的。
其中最重要的參數:
host:smtp伺服器主機名
port:smtp服務的埠,默認是25;
如果在創建SMTP對象的時候提供了這兩個參數,在初始化的時候會自動調用connect方法去連接伺服器。

smtplib.SMTP還提供了如下方法:
SMTP.set_debuglevel(level):設置是否為調試模式
SMTP.connect([host[, port]]):連接到指定的smtp伺服器。參數分別表示 smpt主機和埠。
SMTP.docmd(cmd[, argstring]):向smtp伺服器發送指令。
SMTP.helo([hostname]) :使用"helo"指令向伺服器確認身份。
SMTP.login(user, password):登陸到smtp伺服器。現在幾乎所有smtp伺服器,都必須在驗證用戶信息合法之後才允許發送郵件。(重要!)
SMTP.sendmail(from_addr,to_addrs,msg[,mail_options,rcpt_options]):發送郵件。這里要注意一下第三個參數,msg是字元串,表示郵件。我們知道郵件一般由標題,發信人,收件人,郵件內容,附件等構成,發送郵件的時候,要注意msg的格式。這個格式就是smtp協議中定義的格式。SMTP.quit() :斷開與smtp伺服器的連接,相當於發送"quit"指令。(重要!)

常用的函數方法:

email模塊
1.class email.message.Message
__getitem__,__setitem__實現obj[key]形式的訪問
Msg.attach(playload): 向當前Msg添加playload。
Msg.set_playload(playload):
Msg.add_header(_name, _value, **_params): 添加郵件頭欄位。

2.class email.mime.base.MIMEBase(_maintype, _subtype, **_params)
所有MIME類的基類,是email.message.Message類的子類。

3.class email.mime.multipart.MIMEMultipart()
在3.0版本的email模塊 (Python 2.3-Python 2.5) 中,這個類位於email.MIMEMultipart.MIMEMult ipart。這個類是MIMEBase的直接子類,用來生成包含多個部分的郵件體的MIME對象。

4.class email.mime.text.MIMEText(_text)
使用字元串_text來生成MIME對象的主體文本。

獲得所需要使用的郵箱的host地址和port埠號,(本文使用的是163郵箱,對應的smtp伺服器地址:mail.163.com,埠號25)
常用郵箱的smtp伺服器地址和埠號如圖:

編寫程序如下:

#! /usr/bin/env python
import smtpli
from email.mime.text import MIMEText

mailto_list=['[email protected]'] #收件人(列表)
mail_host="smtp.163.com" #使用的郵箱的smtp伺服器地址
mail_user="name" #用戶名
mail_pass="pwd" #密碼
mail_postfix="postfix" #郵箱的後綴
def send_mail(to_list,sub,content):
me="hello"+"<"+mail_user+"@"+mail_postfix+">"
msg = MIMEText(content,_subtype='plain')
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
for i in range(5): #發送五封,不過會被攔截的。。。
if send_mail(mailto_list,"hello","haha!"): #郵件主題和郵件內容
print "done!"
else:
print "failed!"

最後,可以運行編寫的py文件,可以得到如圖所是的結果,代表郵件發送成功。

這樣,就能成功實現用Python發送郵件啦!

6. Python smtp發送郵件

就是向數據中添加了一個值,類似字典映射

7. 如何在python程序中發郵件

提供以下兩種方式:

  1. 利用smtplib,email庫


coding:utf-8
importsmtplib
fromemail.mime.textimportMIMEText
fromemail.mime.multipartimportMIMEMultipart
importsys
reload(sys)
sys.setdefaultencoding("utf8")
#配置收發件人
recvaddress=['[email protected]','[email protected]']
#163的用戶名和密碼
sendaddr_name='[email protected]'
sendaddr_pswd='your_password'


classSendMail:
def__init__(self,recver=None):
"""接收郵件的人:listortuple"""
ifrecverisNone:
self.sendTo=recvaddress
else:
self.sendTo=recver

defsend(self,sub,content,attachcontent):
"""發送郵件"""
self.msg=MIMEMultipart()
#設置發送郵件
self.msg['from']=sendaddr_name
try:
#設置郵箱伺服器
smtp=smtplib.SMTP('smtp.163.com',25)
#登錄
smtp.login(sendaddr_name,sendaddr_pswd)
#設置發送主題
self.msg['Subject']=sub
#設置郵件內容
self.msg.attach(MIMEText(content))
#設置郵件附件,將附件的內容attachcontent,寫到filename的文件中,作為附件發送
att1=MIMEText(attachcontent,'base64','gb2312')
att1["Content-Type"]='application/octet-stream'
att1["Content-Disposition"]='attachment;filename="testattach.txt"'#這里的filename可以任意寫,寫什麼名字,郵件中顯示什麼名字
self.msg.attach(att1)
#發送郵件
smtp.sendmail(self.msg['from'],self.sendTo,self.msg.as_string())
smtp.close()
print(u"發送郵件成功")
exceptException,e:
print(u'發送郵件失敗:'+str(e))
raise

#調用
s=SendMail()
subject="主題"
content="這里是郵件內容"
attachcontent="這里是附件哦"
s.send(subject,content,attachcontent)

2.利用webpy自帶的email模塊

首先要安裝web.py的依賴庫

pip install web.py

#coding:utf-8

importweb

#####email伺服器配置#####
web.config.smtp_server='smtp.sina.com'
web.config.smtp_port=25
web.config.smtp_username='你的email前綴,@前的字元串'
web.config.smtp_password='你的密碼'
web.config.smtp_starttls=True
send_from="[email protected]"

receiveemailaddr=["[email protected]","[email protected]"]


subject=u'這里是主題'
message=u'這里是郵件的內容'

defsendemail(sendfrom,sendto,subject,message,cc=None,bcc=None,headers=({'User-Agent':'webpy.sendmail','X-Mailer':'webpy.sendmail',})):
try:
web.sendmail(send_from,sendto,subject,message,cc=cc,bcc=bcc)
print"郵件發送成功"
exceptException,e:
print(str(e))

#調用
sendemail(send_from,receiveemailaddr,subject,message)

8. python模塊smtplib怎麼安裝

python模塊smtplib安裝方法如下,根據你的需要選擇執行:

[root@localhost ~]# pip search smtplib

PyEmail (0.0.1) - Python library to send emails using SMTPLIB library

micropython-smtplib (0.0.0) - Dummy smtplib mole for MicroPython

personal (0.1.1) - Easy, secure self notification via email and sms, using smtplib and twilio

aiosmtplib (0.1.4) - asyncio version of smtplib

secure-smtplib (0.1.1) - Secure SMTP subclasses for Python 2

mailclient (0.2.0) - Simplified use of smtplib for Python. Easy email sending.

smtplio (1.0.3) - An async version of smtplib

easyemail (0.4.0) - Simple lib abstracting email sending with smtplib.

9. 如何用python自動發送郵件

注意如果使用qq的smtp轉發功能的話,需要在設置頁面中將該功能打開,然後設定密碼,改密碼就是賦值給下文password中的。

開啟smtp轉發功能文檔


[python]view plain

#fromemail.MIMETextimportMIMEText#

fromemail.MIMETextimportMIMEText

fromemail.HeaderimportHeader

msg=MIMEText('hello,sendbypython','plain','utf-8');

from_addr="*****@qq.com"#

password="******"#password

to_addr="****@qq.com"#targetemailaddress

smtp_server="smtp.qq.com"#smtpseverdomainforqqissmtp.qq.com

importsmtplib

server=smtplib.SMTP(smtp_server,25);

server.set_debuglevel(1)

server.login(from_addr,password);

server.sendmail(from_addr,[to_addr],msg.as_string())

server.quit()



上面這個是沒有主題的,有主題的話建議採用下面這個代碼

下面是連續發送有主題的文件10封


[python]view plain

fromemail.HeaderimportHeader

fromemail.MIMETextimportMIMEText

fromemailimportencoders

fromemail.utilsimportparseaddr,formataddr

importsmtplib

def_format_addr(s):

name,addr=parseaddr(s)

returnformataddr((Header(name,'utf-8').encode(),addr))

from_addr="*****@qq.com"#

password="******"#password

to_addr="****@qq.com"#targetemailaddress

smtp_server="smtp.qq.com"#smtpseverdomainforqqissmtp.qq.com

fornuminrange(1,11):

msg=MIMEText('hello,sendbyTom','plain','utf-8');

msg['From']=_format_addr('Tom<%s>'%from_addr)

msg['To']=_format_addr('addministrator<%s>'%to_addr)

msg['Subject']=Header('ThegreetingfromTom','utf-8').encode()

server=smtplib.SMTP(smtp_server,25)

server.set_debuglevel(1)

server.login(from_addr,password)

#server.sendmail(from_addr,[to_addr],msg.as_string())

server.sendmail(from_addr,[to_addr],msg.as_string())

server.quit()

10. python 實現郵件合並

用Python的smtplib就可以簡單的實現郵件功能。什麼是SMTP?郵件功能怎麼實現?

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 對象使用 sendmail 方法發送郵件,語法如下:

SMTP.sendmail(from_addr, to_addrs, msg[, mail_options, rcpt_options])

熱點內容
php難招 發布:2025-01-14 19:06:07 瀏覽:487
sublime編譯php 發布:2025-01-14 18:57:16 瀏覽:307
雲計算伺服器是什麼 發布:2025-01-14 18:56:22 瀏覽:41
vip域名查詢ftp 發布:2025-01-14 18:46:48 瀏覽:114
格式化linux 發布:2025-01-14 18:35:14 瀏覽:593
如何進入安卓原生市場 發布:2025-01-14 18:22:06 瀏覽:558
台式電腦找不到伺服器 發布:2025-01-14 18:19:58 瀏覽:423
androidsdk網盤 發布:2025-01-14 18:17:43 瀏覽:80
個別用戶訪問不了騰訊雲伺服器 發布:2025-01-14 18:03:27 瀏覽:276
oracle鏈接sqlserver 發布:2025-01-14 17:58:33 瀏覽:729