java imap 标记已读_pythion利用IMAPClient收取邮件并标记已读,触发jenkins
功能:python 接收邮件获取邮件内容并标记邮件已读后,触发jenkins构建。下面代码通过接收邮件标题123456 ,触发url调用jenkins 。 也可以获取邮件内容。代码并且不完善还需要改进,暂时够用。说明:脚本添加到crontab 分钟执行,也可以写一个死循环实时获取。环境:python2.7centos7触发jenkins地址:http://10.2.7.157:8080/...
功能:python 接收邮件获取邮件内容并标记邮件已读后,触发jenkins构建。
下面代码通过接收邮件标题123456 ,触发url调用jenkins 。 也可以获取邮件内容。
代码并且不完善还需要改进,暂时够用。
说明:脚本添加到crontab 分钟执行,也可以写一个死循环实时获取。
环境:python2.7 centos7
触发jenkins地址:
http://10.2.7.157:8080/job/test/build?token=123456
环境可能需要用到的:
yum -y install epel-release
yum -y install python-pip
yum install qt4 qt4-devel qt4-x11his
yum install python-devel.x86_64
yum install cmake
yum install gcc-c++
pip install IMAPClient
pip install imapclient
pip install -U protobuf
############################### 以下是代码 ##############################
#-*- encoding: utf-8 -*-
#-*- encoding: gbk -*-
import urllib
import urllib2
#import urllib.request=>import urllib
import ssl
import getpass, email, sys
from imapclient import IMAPClient
hostname = 'imap.qq.com'
c = IMAPClient(hostname, ssl= True)
c.login('email@qq.com', 'password')
######### 只读方式 打开收件箱 ##########
c.select_folder('INBOX', readonly = True)
####### 获取未读邮件 #########
result = c.search('UNSEEN')
msgdict = c.fetch(result, ['BODY.PEEK[]'] )
print(result)
############ 判断是否有邮件 ###############
############## 没有邮件 退出程序 ##############
if len(result):
print("true")
else:
print("fffff")
exit()
print("exit")
for message_id, message in msgdict.items():
e = email.message_from_string(message['BODY[]'])
subject = e['SUBJECT']
mail_from = e['From']
maintype = e.get_content_maintype()
for part in e.get_payload():
if part.get_content_maintype() == 'text':
mail_content = part.get_payload(decode=True).strip()
print(subject)
##print(mail_content)
####c.search()
#############标记已读 ############
set_r=result
set_flage=c.set_flags(set_r,b'\\seen')
print(set_flage)
############## 触发Jenkins #######################
url = ("http://10.2.7.157:8080/job/test/build?token=" + subject)
print("url:" + url)
req = urllib2.Request(url)
print req
res_data = urllib2.urlopen(req)
res = res_data.read()
print res
############################### 代码结束 #####################################
更多推荐
所有评论(0)