def setUpClass(cls): cls.service = Exchange2010Service( connection=ExchangeNTLMAuthConnection( url=FAKE_EXCHANGE_URL, username=FAKE_EXCHANGE_USERNAME, password=FAKE_EXCHANGE_PASSWORD, ))
def list_meetings_and_save_in_DB(room_name): ###credentials for outlook exchange: URL = u'https://mail.cisco.com/ews/exchange.asmx' USERNAME = u'jgerardf' PASSWORD = u"Abcd$127" # Set up the connection to Exchange connection = ExchangeNTLMAuthConnection(url=URL, username=USERNAME, password=PASSWORD) service = Exchange2010Service(connection) val = u'{}'.format(room_name) print(room_name, val) events = service.calendar().list_events( start=timezone("US/Pacific").localize(datetime(2018, 11, 8, 7, 0, 0)), end=timezone("US/Pacific").localize(datetime(2018, 11, 10, 7, 0, 0)), details=True, delegate_for=val) truncate_query = "TRUNCATE TABLE outlook_meetings" mysql_connection(truncate_query) for events in events.events: insert_query = "INSERT INTO outlook_meetings(event_id,event_subject,event_organizer,event_start,event_end,event_start_utc,event_end_utc) VALUES('{}','{}','{}','{}','{}','{}','{}')".format( events.id, events.subject, events.organizer.email, convert_to_pacific(events.start), convert_to_pacific(events.end), events.start, events.end) #print(insert_query) mysql_connection( insert_query) ##calling to insert meetings info into DB
def update_meetings(res, start_time, subject, URL, USERNAME, PASSWORD): if res == "ok": print("ok") # Set up the connection to Exchange connection = ExchangeNTLMAuthConnection(url=URL, username=USERNAME, password=PASSWORD) service = Exchange2010Service(connection) events = service.calendar().list_events( start=timezone("US/Pacific").localize( datetime(2018, 11, 5, 7, 0, 0)), end=timezone("US/Pacific").localize(datetime(2018, 11, 7, 4, 0, 0)), details=True, delegate_for=None) for events in events.events: if str(events.start) == '2018-11-06 00:00:00+00:00': # print ("------\n Object Type = {type_events}\n start_time = {start}\n end_time = {stop} \n Subject = {subject} \n Organizer = {organiser}\n events_id = {events_id}\n--------------".format( # start=events.start, # stop=events.end, # subject=events.subject, # organiser = events.organizer.email, # type_events = type(events), # events_id = events.id # )) new_start = events.start + timedelta(minutes=10) events.start = new_start events.update() print('Completed Updating the meeting') else: print("Not Updating the meeting")
def setUpAll(cls): cls.calendar = Exchange2010Service( connection=ExchangeNTLMAuthConnection( url=FAKE_EXCHANGE_URL, username=FAKE_EXCHANGE_USERNAME, password=FAKE_EXCHANGE_PASSWORD)).calendar()
def fake_event_request(): service = Exchange2010Service(connection=ExchangeNTLMAuthConnection(url=FAKE_EXCHANGE_URL, username=FAKE_EXCHANGE_USERNAME, password=FAKE_EXCHANGE_PASSWORD)) httpretty.register_uri(httpretty.POST, FAKE_EXCHANGE_URL, body=GET_ITEM_RESPONSE.encode('utf-8'), content_type='text/xml; charset=utf-8') return service.calendar().get_event(id=TEST_EVENT.id)
def ews_connection(self): '''This connection for sending the meeting invite, which don't support by exchangelib''' if not self._ews_connection: configuration = ExchangeNTLMAuthConnection(url=self.url, username=self.username, password=self.password) self._ews_connection = Exchange2010Service(configuration) return self._ews_connection
def setUp(self): self.calendar = Exchange2010Service( connection=ExchangeNTLMAuthConnection(**config)).calendar() HTTPretty.register_uri(HTTPretty.POST, FAKE_EXCHANGE_URL, body=GET_ITEM_RESPONSE.encode('utf-8'), content_type='text/xml; charset=utf-8') self.event = self.calendar.get_event(id=TEST_EVENT_ATTACHED.id) self.event._change_key = TEST_EVENT_ATTACHED.change_key
def __init__(self, domain, url, username, password, timezone): super(ExchangeCalendar, self).__init__() self.timezone = timezone connection = ExchangeNTLMAuthConnection(url=url, username='******' % (domain, username), password=password) self._service = Exchange2010Service(connection) self.calendar = self._service.calendar()
def setup(): """ Creates the Exchange Connection """ # Set up the connection to Exchange connection = ExchangeBasicAuthConnection( url=settings.OUTLOOK_URL, username=settings.EMAIL_USERNAME, password=settings.EMAIL_PASSWORD) service = Exchange2010Service(connection) return service
def get_all_calendar_events(service, username, password, start, end, details): connection = ExchangeNTLMAuthConnection(service, username, password, verify_certificate=False) service = Exchange2010Service(connection) events = service.calendar().list_events(start=start, end=end, details=details) return map(as_event_dict, events.events)
def setUpClass(self): self.service = Exchange2010Service( connection=ExchangeNTLMAuthConnection( url=FAKE_EXCHANGE_URL, username=FAKE_EXCHANGE_USERNAME, password=FAKE_EXCHANGE_PASSWORD)) HTTPretty.register_uri( HTTPretty.POST, FAKE_EXCHANGE_URL, body=GET_ITEM_RESPONSE.encode('utf-8'), content_type='text/xml; charset=utf-8', ) self.event = self.service.calendar().get_event(id=TEST_EVENT.id)
def setUp(self): httpretty.enable() self.service = Exchange2010Service( connection=ExchangeNTLMAuthConnection(**config)) HTTPretty.register_uri(HTTPretty.POST, FAKE_EXCHANGE_URL, body=GET_ATTACHMENT_RESPONSE.encode('utf-8'), content_type='text/xml; charset=utf-8') self.attachment = Exchange2010Attachment(self.service, ATTACHMENT_DETAILS.id, load=True)
def get_calendar_events_cocus(): URL = u'https://smtp.sfp-net.com/EWS/Exchange.asmx' USERNAME = config.outlook_username PASSWORD = read_password() # Set up the connection to Exchange connection = ExchangeNTLMAuthConnection(url=URL, username=USERNAME, password=PASSWORD) service = Exchange2010Service(connection) my_calendar = service.calendar() start = datetime.combine(date.today(), time.min) end = datetime.combine(date.today(), time.max) events = my_calendar.list_events(start, end) # details = events.load_all_details() event_list = [] if events: for event in events.events: event_date = event.start.date().isoformat() event_start_time = (event.start + timedelta(hours=1)).time().isoformat() event_end_time = (event.end + timedelta(hours=1)).time().isoformat() # if 'Nao' in event.subject and 'Home' in event.subject: # print('Maybe found do not use home office') # print('Event %s on %s. From %s until %s' % # (event.subject, event_date, event_start_time, event_end_time)) # continue # ignore event print('Event %s on %s. From %s until %s' % (event.subject, event_date, event_start_time, event_end_time)) now = datetime.now(timezone.utc) + timedelta(hours=1) print(now) if event.start + timedelta(hours=1) <= now <= event.end + timedelta(hours=1): is_happening_now = True else: is_happening_now = False # events_filtered += filter_out_events(event) if is_happening_now: event_list += filter_out_events(event) event_list = event_list[0] if event_list else False return event_list
def setUpClass(cls): cls.service = Exchange2010Service( connection=ExchangeNTLMAuthConnection( url=FAKE_EXCHANGE_URL, username=FAKE_EXCHANGE_USERNAME, password=FAKE_EXCHANGE_PASSWORD)) cls.get_change_key_response = HTTPretty.Response( body=GET_ITEM_RESPONSE_ID_ONLY.encode('utf-8'), status=200, content_type='text/xml; charset=utf-8') cls.update_event_response = HTTPretty.Response( body=UPDATE_ITEM_RESPONSE.encode('utf-8'), status=200, content_type='text/xml; charset=utf-8')
def _get_service(self, username, password): """ Get the calendar for the given connection """ connection = ExchangeNTLMAuthConnection( url=self.asmx_url, username='******'.format( domain=self.domain, username=username, ), password=password) service = Exchange2010Service(connection) return service
def fake_folder_request(): service = Exchange2010Service( connection=ExchangeNTLMAuthConnection( url=FAKE_EXCHANGE_URL, username=FAKE_EXCHANGE_USERNAME, password=FAKE_EXCHANGE_PASSWORD, )) httpretty.register_uri( httpretty.POST, FAKE_EXCHANGE_URL, body=GET_FOLDER_RESPONSE.encode('utf-8'), content_type='text/xml; charset=utf-8', ) return service.folder().get_folder(id=TEST_FOLDER.id)
def get_events_from_exchange(): conf = config['Exchange'] verify_cert = conf.getboolean('VerifyCert', True) # Disable SSL warnings when certification verification is turned off if not verify_cert: requests.packages.urllib3.disable_warnings() decrypted_password = base64.b64decode(conf['Password']).decode('utf-8') connection = ExchangeNTLMAuthConnection(url=conf['URL'], username=conf['Username'], password=decrypted_password, verify_certificate=verify_cert) service = Exchange2010Service(connection) calendar = service.calendar() return calendar.list_events(start=start_date, end=end_date, details=True)
def setUpClass(cls): cls.service = Exchange2010Service( connection=ExchangeNTLMAuthConnection( url=FAKE_EXCHANGE_URL, username=FAKE_EXCHANGE_USERNAME, password=FAKE_EXCHANGE_PASSWORD, ) ) cls.get_change_key_response = httpretty.Response( body=GET_FOLDER_RESPONSE.encode('utf-8'), status=200, content_type='text/xml; charset=utf-8' ) cls.delete_folder_response = httpretty.Response( body=DELETE_FOLDER_RESPONSE.encode('utf-8'), status=200, content_type='text/xml; charset=utf-8' )
def initialize(self): """ Initialize connection and schedule periodic events. """ # Loading optional modules only when module is configured. from pyexchange import Exchange2010Service from pyexchange import ExchangeNTLMAuthConnection self.connection = ExchangeNTLMAuthConnection(url=self.url, username=self.username, password=self.password) self.service = Exchange2010Service(self.connection) self.exch_calendar = self.service.calendar() self.connection.build_session() if self.ca_path is not None: self.connection.session.verify = self.ca_path # Initial refresh self.refresh_events() self.scheduler.every(60 * 10).seconds.do(self.refresh_events)
def give_events(message): # Set up the connection to Exchange from pyexchange import Exchange2010Service, ExchangeNTLMAuthConnection connection = ExchangeNTLMAuthConnection(url=config.ExchangeUrl, username=config.ExchangeUsername, password=config.ExchangePassword) try: service = Exchange2010Service(connection) curday = datetime.datetime.now() events = my_calendar.list_events(curday, curday) events.load_all_details() bot.send_message(message.chat.id, events.load_all_details(), parse_mode="Markdown") except LookupError: bot.send_message(message.chat.id, "Не удалост прочитать Календарь", parse_mode="Markdown")
def update_meetings(res, start_time, subject, URL, USERNAME, PASSWORD): if res == "ok": print("ok") # Set up the connection to Exchange connection = ExchangeNTLMAuthConnection(url=URL, username=USERNAME, password=PASSWORD) service = Exchange2010Service(connection) events = service.calendar().list_events( start=timezone("US/Pacific").localize( datetime(2018, 11, 8, 7, 0, 0)), end=timezone("US/Pacific").localize(datetime( 2018, 11, 10, 7, 0, 0)), details=True, delegate_for=None) for events in events.events: #print(events.start) if str(events.start) == start_time: print( "------\n Object Type = {type_events}\n start_time = {start}\n end_time = {stop} \n Subject = {subject} \n Organizer = {organiser}\n events_id = {events_id}\n--------------" .format(start=events.start, stop=events.end, subject=events.subject, organiser=events.organizer.email, type_events=type(events), events_id=events.id)) # new_start = events.start+timedelta(minutes=10) # events.start = new_start # events.update() # print('Completed Updating the meeting') # else: # #print('time did not match to find the required calendar object') else: print("Not Updating the meeting")
def main(argv): try: opts, args = getopt.getopt(argv, "h:u:", ["host=", "user="******"-h", "--host"): host = a elif o in ("-u", "--user"): user = a pwd = getpass.getpass("Password for your outlook/exchange account: ") if not pwd: print 'You need to set the password!' sys.exit(2) connection = ExchangeNTLMAuthConnection(url=host, username=user, password=pwd) service = Exchange2010Service(connection) today = datetime.today() nextWeek = today + timedelta(days=7) events = service.calendar().list_events(start=today, end=nextWeek) for event in events.events: print "{start} {stop} - {subject}".format(start=event.start, stop=event.end, subject=event.subject) sys.exit(0)
def establishexconn(): global exservice exconnection = ExchangeNTLMAuthConnection(url=EX_URL, username=EX_USERNAME, password=EX_PASSWORD) exservice = Exchange2010Service(exconnection)
from datetime import datetime from pytz import timezone from pyexchange import Exchange2010Service, ExchangeNTLMAuthConnection from Event import Event originURL = u'https://nomeDoServidor.outlook.com/EWS/Exchange.asmx' originUsername = u'nomeDoUsuario' originPassword = u"passwordDoUsuario" # Set up the connection to Exchange originConnection = ExchangeNTLMAuthConnection(url=originURL, username=originUsername, password=originPassword) originService = Exchange2010Service(originConnection) originCalendar = originService.calendar() originEvents = originCalendar.list_events( start=timezone("America/Sao_Paulo").localize(datetime(2017, 11, 1, 0, 0, 0)), end=timezone("America/Sao_Paulo").localize(datetime(2017, 11, 17, 0, 0, 0)), details=True ) destinyURL = u'https://outroServidor.outlook.com/EWS/Exchange.asmx' destinyUsername = u'nomeUsuario' originPassword = u'passwordUsuario' # Set up the connection to Exchange destinyConnection = ExchangeNTLMAuthConnection(url=destinyURL,
try: mode = sys.argv[1] except IndexError: mode = 'normal' URL = 'https://mymail.qualcomm.com/EWS/Exchange.asmx' USERNAME = r'NA\jsmiller' PASSWORD = get_password() # Set up the connection to Exchange connection = ExchangeNTLMAuthConnection(url=URL, username=USERNAME, password=PASSWORD) service = Exchange2010Service(connection) my_calendar = service.calendar() local_tz = pytz.timezone("US/Pacific") now = datetime.now() this_morning = datetime(now.year, now.month, now.day, 0, 1, 0) this_evening = datetime(now.year, now.month, now.day, 23, 59, 0) with stderr_off(): events = my_calendar.list_events( start=local_tz.localize(this_morning).astimezone(pytz.utc), end=local_tz.localize(this_evening).astimezone(pytz.utc), details=True) events.load_all_details()
def connect(self, username, password): self.connection = ExchangeNTLMAuthConnection(url=OUTLOOK_URL, username=username, password=password) self.service = Exchange2010Service(self.connection)
def connectEx(): global exconnection, service exconnection = ExchangeNTLMAuthConnection(url=EX_URL, username=EX_USERNAME, password=EX_PASSWORD) service = Exchange2010Service(exconnection)
def setUp(self): self.calendar = Exchange2010Service( connection=ExchangeNTLMAuthConnection(**config)).calendar()
def setUpClass(cls): cls.service = Exchange2010Service( connection=ExchangeNTLMAuthConnection(**config))