python基于exchange函數(shù)發(fā)送郵件過程詳解
1.Python hasattr() 函數(shù)
描述
hasattr() 函數(shù)用于判斷對象是否包含對應(yīng)的屬性。
語法
hasattr 語法:
hasattr(object, name)
參數(shù)
- object -- 對象。
- name -- 字符串,屬性名。
返回值
如果對象有該屬性返回 True,否則返回 False。
實例
以下實例展示了 hasattr 的使用方法:
#!/usr/bin/python # -*- coding: UTF-8 -*- class Coordinate: x = 10 y = -5 z = 0 point1 = Coordinate() print(hasattr(point1, 'x')) print(hasattr(point1, 'y')) print(hasattr(point1, 'z')) print(hasattr(point1, 'no')) # 沒有該屬性
輸出結(jié)果:
True
True
True
False
打包.ui文件:
C:\Python27\Lib\site-packages\PyQt4>pyuic4 E:\pyDemo\proTools.ui -o proTools.py
Qt 代碼是面向?qū)ο蟮?,并且簡單易學(xué)。所有我們添加的組件都是一個對象,并且都擁有自己的方法比如toPlainText()(用來讀取輸入框中的值)。這讓它使用起來非常方便。
代碼打包:C:\Python27\Scripts>python pyinstaller-script.py -w E:\pyDemo\PyQt\testPyQt.py testPyQt.spec
-F 帶黑窗口 (打包成單個exe)
-W 不帶黑窗口(打包成文件形式)
-i 加圖標(biāo)
pyinstaller -i D:\ALIX_SH\2carReport\yx.ico -W D:\ALIX_SH\2carReport\upload2carReport.py
-F -w 打包成exe,但不帶黑窗口
pyinstaller -i D:\ALIX_SH\2carReport\yx.ico -F -w D:\ALIX_SH\2carReport\upload2carReport.py
下面用Pyinstaller生成一個可執(zhí)行文件試試。
在命令提示符中去到要打包的目錄;直接輸入"pyinstaller -F -w 文件名.py(F大寫);文件目錄出現(xiàn)新的文件夾,里面就是打包好的exe文件了;
- -F, -onefile:打包成一個exe文件
- -w, -windowed:使用窗口,無控制臺
- -c, -console:無窗口,使用控制臺
- -D, -onedir:創(chuàng)建一個目錄,包含exe文件,但會依賴其他文件
- --icon=圖標(biāo)路徑
可以通過"Pyinstaller -h"來查看
Python發(fā)郵件的代碼如下:
只需要填寫好加粗字體,即可正常使用。
from exchangelib import DELEGATE, Account, Credentials, Message, Mailbox, HTMLBody def Email(to, subject, body): creds = Credentials( username='xxxxxx', password='xxxxxx' ) account = Account( primary_smtp_address='xxx@xxx.com', credentials=creds, autodiscover=True, access_type=DELEGATE ) m = Message( account=account, subject=subject, body=HTMLBody(body), to_recipients = [Mailbox(email_address=to)] ) m.send() Email("xxx@xxx.com", "abc", "def")
但是如果Python環(huán)境安裝有瑕疵,則報錯如下:
$python3 ab.py Traceback (most recent call last): File "ab.py", line 22, in <module> Email("xxx@xxx.com", "abc", "def") File "ab.py", line 12, in Email access_type=DELEGATE File "/usr/local/lib/python3.5/site-packages/exchangelib/account.py", line 66, in __init__ credentials=credentials) File "/usr/local/lib/python3.5/site-packages/exchangelib/autodiscover.py", line 214, in discover email=email) File "/usr/local/lib/python3.5/site-packages/exchangelib/autodiscover.py", line 236, in _try_autodiscover return _try_autodiscover(e.server, credentials, email) File "/usr/local/lib/python3.5/site-packages/exchangelib/autodiscover.py", line 262, in _try_autodiscover raise_from(AutoDiscoverFailed('All steps in the autodiscover protocol failed'), None) File "/usr/local/lib/python3.5/site-packages/future/utils/__init__.py", line 398, in raise_from exec(execstr, myglobals, mylocals) File "<string>", line 1, in <module> exchangelib.errors.AutoDiscoverFailed: All steps in the autodiscover protocol failed
好在我有臺機器安裝Python3.5.2正常,執(zhí)行上述完全沒有問題。
今天終于搞定?。?! 2017-12-11
exchange的版本不對,
我本機版本:
pip3 search exchangelib
exchangelib (1.10.6) - Client for Microsoft Exchange Web Services (EWS)
INSTALLED: 1.9.4
LATEST: 1.10.6
服務(wù)器版本為:
$pip3 search exchangelib
exchangelib (1.10.6) - Client for Microsoft Exchange Web Services (EWS)
INSTALLED: 1.10.4
LATEST: 1.10.6
要做的就是把服務(wù)器上的版本降低到1.9.4,就🆗了。
pip3 install exchangelib==1.9.4
再次執(zhí)行發(fā)郵件的操作,bingo,搞定!
1、首先下載一個神器exchangelib,操作 pip install exchangelib
2、然后只需要將下面的信息改成你的信息就可以了
from exchangelib import Account, Message, Mailbox, HTMLBody, ServiceAccount #忽略警告 import urllib3 urllib3.disable_warnings() #報錯處理:ConnectionError: HTTPConnectionPool(host='mail.xxx.com', port=443): Max retries exceeded with url: # import socket # socket.create_connection((host, port), timeout=10) def Email(to, subject, body): creds = ServiceAccount(username='域\名', password='密碼') account = Account('發(fā)送的郵箱', credentials=creds, autodiscover=True) m = Message(account=account,subject=subject,body=HTMLBody(body), to_recipients = [Mailbox(email_address=to)] ) m.send() Email("接收的郵箱", "郵件標(biāo)題", "郵件內(nèi)容")
安裝庫exchangelib
pip install exchangelib1
腳本內(nèi)容
# coding=utf-8 # # Created on 2018/2/ from exchangelib import DELEGATE, Account, Credentials, Configuration, NTLM, Message, Mailbox, HTMLBody from exchangelib.protocol import BaseProtocol, NoVerifyHTTPAdapter #此句用來消除ssl證書錯誤,exchange使用自簽證書需加上 BaseProtocol.HTTP_ADAPTER_CLS = NoVerifyHTTPAdapter # 輸入你的域賬號如example\leo cred = Credentials(r'EXAMPLE\leo', '輸入你的密碼') config = Configuration(server='輸入郵箱服務(wù)器網(wǎng)頁地址', credentials=cred, auth_type=NTLM) a = Account( primary_smtp_address='輸入你要綁定的郵箱名(leo@example.com)', config=config, autodiscover=False, access_type=DELEGATE ) # 此處為用來發(fā)送html格式郵件的文件路徑 with open(r'C:\Users\leo\Desktop\1.html') as f: msg = f.read().decode('utf-8') m = Message( account=a, folder=a.sent, subject=u'測試郵件', body=HTMLBody(msg), to_recipients=[Mailbox(email_address='輸入你要綁定的郵箱名(leo@example.com)')] ) m.send_and_save()
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- 使用Python3 poplib模塊刪除服務(wù)器多天前的郵件實現(xiàn)代碼
- python如何發(fā)送帶有附件、正文為HTML的郵件
- python使用Windows的wmic命令監(jiān)控文件運行狀況,如有異常發(fā)送郵件報警
- 用python監(jiān)控服務(wù)器的cpu,磁盤空間,內(nèi)存,超過郵件報警
- python實現(xiàn)發(fā)送QQ郵件(可加附件)
- python實現(xiàn)定時發(fā)送郵件到指定郵箱
- python 發(fā)送郵件的四種方法匯總
- 詳解python定時簡單爬取網(wǎng)頁新聞存入數(shù)據(jù)庫并發(fā)送郵件
- 利用Python發(fā)送郵件或發(fā)帶附件的郵件
- Python發(fā)送郵件實現(xiàn)基礎(chǔ)解析
- Python自動發(fā)送和收取郵件的方法
- python 實現(xiàn)網(wǎng)易郵箱郵件閱讀和刪除的輔助小腳本
相關(guān)文章
pytorch中的named_parameters()和parameters()
這篇文章主要介紹了pytorch中的named_parameters()和parameters()使用方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2023-09-09Python實現(xiàn)將多張圖片合成視頻并加入背景音樂
這篇文章主要為大家介紹了如何利用Python實現(xiàn)將多張圖片合成mp4視頻,并加入背景音樂。文中的示例代碼講解詳細(xì),感興趣的小伙伴可以了解一下2022-04-04Keras自動下載的數(shù)據(jù)集/模型存放位置介紹
這篇文章主要介紹了Keras自動下載的數(shù)據(jù)集/模型存放位置介紹,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-06-06python numpy矩陣信息說明,shape,size,dtype
這篇文章主要介紹了python numpy矩陣信息說明,shape,size,dtype,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-05-05window環(huán)境pip切換國內(nèi)源(pip安裝異常緩慢的問題)
這篇文章主要介紹了window環(huán)境pip切換國內(nèi)源(pip安裝異常緩慢的問題),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-12-12使用Python讀取Excel數(shù)據(jù)在PPT中創(chuàng)建圖表
使用Python從Excel讀取數(shù)據(jù)并在PowerPoint幻燈片中創(chuàng)建圖表不僅能夠極大地簡化圖表創(chuàng)建過程,通過Python這一橋梁,我們可以輕松實現(xiàn)數(shù)據(jù)自動化處理和圖表生成,本文將演示如何使用Python讀取Excel數(shù)據(jù)在PPT中創(chuàng)建圖表,需要的朋友可以參考下2024-08-08