python基于exchange函数发送邮件过程详解

作者: shuzihua  更新时间:2020-11-06 10:40:35  原文链接

1.Python hasattr() 函数

描述

hasattr() 函数用于判断对象是否包含对应的属性。

语法

hasattr 语法:

hasattr(object, name)

参数

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')) # 没有该属性

输出结果:

True

True

True

False

打包.ui文件:

C:\Python27\Lib\site-packages\PyQt4>pyuic4 E:\pyDemo\proTools.ui -o proTools.py

Qt 代码是面向对象的,并且简单易学。所有我们添加的组件都是一个对象,并且都拥有自己的方法比如toPlainText()(用来读取输入框中的值)。这让它使用起来非常方便。

代码打包:C:\Python27\Scripts>python pyinstaller-script.py -w E:\pyDemo\PyQt\testPyQt.py testPyQt.spec

-F 带黑窗口 (打包成单个exe)

-W 不带黑窗口(打包成文件形式)

-i 加图标

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生成一个可执行文件试试。

在命令提示符中去到要打包的目录;直接输入"pyinstaller -F -w 文件名.py(F大写);文件目录出现新的文件夹,里面就是打包好的exe文件了;

-F, -onefile:打包成一个exe文件

-w, -windowed:使用窗口,无控制台

-c, -console:无窗口,使用控制台

-D, -onedir:创建一个目录,包含exe文件,但会依赖其他文件

--icon=图标路径

可以通过"Pyinstaller -h"来查看

Python发邮件的代码如下:

只需要填写好加粗字体,即可正常使用。

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环境安装有瑕疵,则报错如下:

$python3 ab.py

Traceback (most recent call last):

File "ab.py", line 22, in

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 "", line 1, in

exchangelib.errors.AutoDiscoverFailed: All steps in the autodiscover protocol failed

好在我有台机器安装Python3.5.2正常,执行上述完全没有问题。

今天终于搞定!!! 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

服务器版本为:

$pip3 search exchangelib

exchangelib (1.10.6) - Client for Microsoft Exchange Web Services (EWS)

INSTALLED: 1.10.4

LATEST: 1.10.6

要做的就是把服务器上的版本降低到1.9.4,就

python中exchange函数使用_python基于exchange函数发送邮件过程详解相关推荐

  1. python中copytree的用法_python复制文件的方法实例详解

    本文实例讲述了python复制文件的方法.分享给大家供大家参考.具体分析如下: 这里涉及Python复制文件在实际操作方案中的实际应用以及Python复制文件 的相关代码说明,希望你会有所收获. Py ...

  2. python中的异常分类_列举 5 个 Python 中的异常类型以及其含义【面试题详解】

    今天爱分享给大家带来列举 5 个 Python 中的异常类型以及其含义[面试题详解],希望能够帮助到大家. BaseException +-- SystemExit +-- KeyboardInter ...

  3. python是基于什么原理_Python基于class()实现面向对象原理详解

    首先,类是一个集合,包含了数据,操作描述的一个抽象集合 你可以首先只把类当做一个容器来使用 class Cycle: def __init__(self,r): self.pi=3.14 self.r ...

  4. python属性使用教程_Python对象的属性访问过程详解

    只想回答一个问题: 当编译器要读取obj.field时, 发生了什么? 看似简单的属性访问, 其过程还蛮曲折的. 总共有以下几个step: 1. 如果obj 本身(一个instance )有这个属性, ...

  5. python中用socket检测端口_python基于socket函数实现端口扫描

    本文实例为大家分享了python基于socket实现端口扫描的具体代码,供大家参考,具体内容如下 自学Python一段时间,写个端口扫描器练练手.有什么不足之处,请见谅 这是基于socket函数对端口 ...

  6. python中int什么意思_python 的 int() 函数是什么,怎么用

    int()函数是python的一个内置函数,用于把一个字符串或者数字转换为[整型],下面来具体看一下: 工具/原料 IDLE 电脑 方法/步骤 1 int()的常用语法: int(字符串或者数字,进制 ...

  7. python中int的功能_Python内置函数int()高级用法

    int()函数常用来把其他类型转换为整数,例如: >>> int(3.2) 3>>> int(1/3) 0 其实,int是Python内置类型之一,之所以能够当作函 ...

  8. python中imread什么意思_Python的imread()函数

    cv2方式: # -*- coding: UTF-8 -*- import cv2 """ cv2模块--图片的读入和显示 """ imag ...

  9. python语言程序的特点_Python语言概述及其运行机制详解

    即日起,我们将打开一个新的编程世界的大门--Python语言.Python是一种跨平台的计算机程序设计语言.是一种面向对象的动态类型语言,最初被设计用于编写自动化脚本(shell),随着版本的不断更新 ...

最新文章

  1. 测试硬盘通电的软件,服务器sas硬盘检测工具及各种测试方法-测通电次数
  2. boost::contract模块实现断言等级的测试程序
  3. libusb开发指南
  4. Nginx使用Expires增加浏览器缓存加速(转)
  5. (单元测试)JavaBeans的技巧
  6. web developer tips (55):多项目解决方案中设置启动项
  7. 岚图FREE店内静态体验
  8. springboot项目启动成功后执行一段代码的两种方式
  9. 不占内存的浏览器_4款黑科技办公网站,高效实用,不占内存,高手的必备神器...
  10. 柯马机器人示教器编程_CR 17911080,COMAU柯马机器人示教器 ,编程器更换显示器维修...
  11. 前台页面操作文件属性。
  12. modelsim+win环境下systemverilog调用c函数
  13. web安全day32:人人都要懂的LAMP--mysql-server服务安装及安防配置
  14. 秩和比RSR法算法C语言,论文:应用EXCEL实现秩和比法的计算及其评价-中大网校论文网...
  15. ora 01033 oracle initialization,ora-01033:oracle initialization or shutdown in progress 解决方法
  16. GNSS观测数据下载地址
  17. bundle adjustment算法学习
  18. C++中的模板(template)
  19. 开始学ASP.NET了~·~得发奋啊……
  20. xmind收费与免费的区别_十年了,我终于想明白免费跟付费的区别

热门文章

  1. mapreduce复制连接的代码_MapReduce:在大型集群上简化数据处理(2)
  2. 多个字符合并成一个数组_一个excel多个sheet,需要合并为一个sheet
  3. vue动态生成下拉框_解决vue动态下拉菜单 有数据未反应的问题
  4. python socket多线程 获取朋友列表_python中的(多线程)套接字列表/数组
  5. Java常用类StringBuffer详解
  6. 第一阶段SCRUM冲刺-05
  7. Django---模版层
  8. 2018暑期做题部分整合
  9. 启发式搜索 A*算法的OC 实现
  10. 应用开发框架之——业务规则脚本化