Exchangelib item.sender returns bytes










1















enter image description here



I'm having an issue recently with some values returned from item.sender - attached is a screen dump 2



As you can see in the lower portion of the graphic, it's not the usual form returned by item.sender which usually is of form:



Mailbox(name='ReCircle Recycling', email_address='aldoushicks@recirclerecycling.com', routing_type='SMTP', mailbox_type='OneOff')


Has anyone else seen this?



How do you deal with it?



i.e. even though I am using try/except clause, this result still causes my IDE to freeze.



I re-ran the script today using exactly the same date filter and it didn't happen. So I’m forced to ask, what did happen? Why is it not occurring again?



Its weird behaviour. It could jam up a script in future so wondering how to prevent it.



Code:



from collections import defaultdict
from datetime import datetime
import logging

from exchangelib import DELEGATE, Account, Credentials,
EWSDateTime, EWSTimeZone, Configuration
from exchangelib.util import PrettyXmlHandler

logging.basicConfig(level=logging.DEBUG, handlers=[PrettyXmlHandler()])

gusername="" #deleted :/
gpassword="" #deleted :/
gprimary_smtp_address="bspks@lunet.lboro.ac.uk"
em_dict = defaultdict(list)

def contactServer(pusername, ppassword,pprimary_smtp_address):
creds = Credentials(pusername, ppassword)
config = Configuration(server='outlook.office365.com/EWS/Exchange.asmx',
credentials=creds)
return Account(
primary_smtp_address=pprimary_smtp_address,
autodiscover=False,
config = config,
access_type=DELEGATE
)

print ("connecting to servern")
account = contactServer(gusername, gpassword, gprimary_smtp_address)

dt_string = "2018-11-01 12:41:19+00:00" #usually comes out from db, stringified for debugging
dt = datetime.strptime(dt_string, '%Y-%m-%d %H:%M:%S+00:00')
tz = EWSTimeZone.timezone('Europe/London')
last_datetime = tz.localize(dt)

for item in account.inbox.filter(datetime_received__gt=last_datetime):
if isinstance(item, Message):

em_dict["username"].append(gusername)
em_dict["gprimary_smtp_address"].append(gprimary_smtp_address)
em_dict["datetime_received"].append(item.datetime_received)
em_dict["subject"].append(item.subject)
em_dict["body"].append(item.body)
em_dict["item_id"].append(item.item_id)
em_dict["sender"].append(item.sender)

# extract the email address from item.sender
emailaddr = item.sender.email_address
print ("debug email addr: ", emailaddr)

print ("downloaded emailsn")









share|improve this question
























  • This is really weird. Please post the code you are running so we can get a better understanding. Also, please turn on debug logging to find out the response XML that caused this problem.

    – Erik Cederstrand
    Nov 19 '18 at 10:16











  • Thank you Erik, the code is below (forgive my lack of experience ;) and I will turn on logging too and try later:

    – Patrick Stacey
    Nov 28 '18 at 15:15











  • If you want the email address of the sender, just access the property: item.sender.email_address. I have cleaned up your code a bit to show you how to do it.

    – Erik Cederstrand
    Nov 29 '18 at 15:41











  • awesome, how kind. Thanks very much Erik. Sorry not had time to provide the logging yet. Best. P

    – Patrick Stacey
    Nov 30 '18 at 16:15















1















enter image description here



I'm having an issue recently with some values returned from item.sender - attached is a screen dump 2



As you can see in the lower portion of the graphic, it's not the usual form returned by item.sender which usually is of form:



Mailbox(name='ReCircle Recycling', email_address='aldoushicks@recirclerecycling.com', routing_type='SMTP', mailbox_type='OneOff')


Has anyone else seen this?



How do you deal with it?



i.e. even though I am using try/except clause, this result still causes my IDE to freeze.



I re-ran the script today using exactly the same date filter and it didn't happen. So I’m forced to ask, what did happen? Why is it not occurring again?



Its weird behaviour. It could jam up a script in future so wondering how to prevent it.



Code:



from collections import defaultdict
from datetime import datetime
import logging

from exchangelib import DELEGATE, Account, Credentials,
EWSDateTime, EWSTimeZone, Configuration
from exchangelib.util import PrettyXmlHandler

logging.basicConfig(level=logging.DEBUG, handlers=[PrettyXmlHandler()])

gusername="" #deleted :/
gpassword="" #deleted :/
gprimary_smtp_address="bspks@lunet.lboro.ac.uk"
em_dict = defaultdict(list)

def contactServer(pusername, ppassword,pprimary_smtp_address):
creds = Credentials(pusername, ppassword)
config = Configuration(server='outlook.office365.com/EWS/Exchange.asmx',
credentials=creds)
return Account(
primary_smtp_address=pprimary_smtp_address,
autodiscover=False,
config = config,
access_type=DELEGATE
)

print ("connecting to servern")
account = contactServer(gusername, gpassword, gprimary_smtp_address)

dt_string = "2018-11-01 12:41:19+00:00" #usually comes out from db, stringified for debugging
dt = datetime.strptime(dt_string, '%Y-%m-%d %H:%M:%S+00:00')
tz = EWSTimeZone.timezone('Europe/London')
last_datetime = tz.localize(dt)

for item in account.inbox.filter(datetime_received__gt=last_datetime):
if isinstance(item, Message):

em_dict["username"].append(gusername)
em_dict["gprimary_smtp_address"].append(gprimary_smtp_address)
em_dict["datetime_received"].append(item.datetime_received)
em_dict["subject"].append(item.subject)
em_dict["body"].append(item.body)
em_dict["item_id"].append(item.item_id)
em_dict["sender"].append(item.sender)

# extract the email address from item.sender
emailaddr = item.sender.email_address
print ("debug email addr: ", emailaddr)

print ("downloaded emailsn")









share|improve this question
























  • This is really weird. Please post the code you are running so we can get a better understanding. Also, please turn on debug logging to find out the response XML that caused this problem.

    – Erik Cederstrand
    Nov 19 '18 at 10:16











  • Thank you Erik, the code is below (forgive my lack of experience ;) and I will turn on logging too and try later:

    – Patrick Stacey
    Nov 28 '18 at 15:15











  • If you want the email address of the sender, just access the property: item.sender.email_address. I have cleaned up your code a bit to show you how to do it.

    – Erik Cederstrand
    Nov 29 '18 at 15:41











  • awesome, how kind. Thanks very much Erik. Sorry not had time to provide the logging yet. Best. P

    – Patrick Stacey
    Nov 30 '18 at 16:15













1












1








1








enter image description here



I'm having an issue recently with some values returned from item.sender - attached is a screen dump 2



As you can see in the lower portion of the graphic, it's not the usual form returned by item.sender which usually is of form:



Mailbox(name='ReCircle Recycling', email_address='aldoushicks@recirclerecycling.com', routing_type='SMTP', mailbox_type='OneOff')


Has anyone else seen this?



How do you deal with it?



i.e. even though I am using try/except clause, this result still causes my IDE to freeze.



I re-ran the script today using exactly the same date filter and it didn't happen. So I’m forced to ask, what did happen? Why is it not occurring again?



Its weird behaviour. It could jam up a script in future so wondering how to prevent it.



Code:



from collections import defaultdict
from datetime import datetime
import logging

from exchangelib import DELEGATE, Account, Credentials,
EWSDateTime, EWSTimeZone, Configuration
from exchangelib.util import PrettyXmlHandler

logging.basicConfig(level=logging.DEBUG, handlers=[PrettyXmlHandler()])

gusername="" #deleted :/
gpassword="" #deleted :/
gprimary_smtp_address="bspks@lunet.lboro.ac.uk"
em_dict = defaultdict(list)

def contactServer(pusername, ppassword,pprimary_smtp_address):
creds = Credentials(pusername, ppassword)
config = Configuration(server='outlook.office365.com/EWS/Exchange.asmx',
credentials=creds)
return Account(
primary_smtp_address=pprimary_smtp_address,
autodiscover=False,
config = config,
access_type=DELEGATE
)

print ("connecting to servern")
account = contactServer(gusername, gpassword, gprimary_smtp_address)

dt_string = "2018-11-01 12:41:19+00:00" #usually comes out from db, stringified for debugging
dt = datetime.strptime(dt_string, '%Y-%m-%d %H:%M:%S+00:00')
tz = EWSTimeZone.timezone('Europe/London')
last_datetime = tz.localize(dt)

for item in account.inbox.filter(datetime_received__gt=last_datetime):
if isinstance(item, Message):

em_dict["username"].append(gusername)
em_dict["gprimary_smtp_address"].append(gprimary_smtp_address)
em_dict["datetime_received"].append(item.datetime_received)
em_dict["subject"].append(item.subject)
em_dict["body"].append(item.body)
em_dict["item_id"].append(item.item_id)
em_dict["sender"].append(item.sender)

# extract the email address from item.sender
emailaddr = item.sender.email_address
print ("debug email addr: ", emailaddr)

print ("downloaded emailsn")









share|improve this question
















enter image description here



I'm having an issue recently with some values returned from item.sender - attached is a screen dump 2



As you can see in the lower portion of the graphic, it's not the usual form returned by item.sender which usually is of form:



Mailbox(name='ReCircle Recycling', email_address='aldoushicks@recirclerecycling.com', routing_type='SMTP', mailbox_type='OneOff')


Has anyone else seen this?



How do you deal with it?



i.e. even though I am using try/except clause, this result still causes my IDE to freeze.



I re-ran the script today using exactly the same date filter and it didn't happen. So I’m forced to ask, what did happen? Why is it not occurring again?



Its weird behaviour. It could jam up a script in future so wondering how to prevent it.



Code:



from collections import defaultdict
from datetime import datetime
import logging

from exchangelib import DELEGATE, Account, Credentials,
EWSDateTime, EWSTimeZone, Configuration
from exchangelib.util import PrettyXmlHandler

logging.basicConfig(level=logging.DEBUG, handlers=[PrettyXmlHandler()])

gusername="" #deleted :/
gpassword="" #deleted :/
gprimary_smtp_address="bspks@lunet.lboro.ac.uk"
em_dict = defaultdict(list)

def contactServer(pusername, ppassword,pprimary_smtp_address):
creds = Credentials(pusername, ppassword)
config = Configuration(server='outlook.office365.com/EWS/Exchange.asmx',
credentials=creds)
return Account(
primary_smtp_address=pprimary_smtp_address,
autodiscover=False,
config = config,
access_type=DELEGATE
)

print ("connecting to servern")
account = contactServer(gusername, gpassword, gprimary_smtp_address)

dt_string = "2018-11-01 12:41:19+00:00" #usually comes out from db, stringified for debugging
dt = datetime.strptime(dt_string, '%Y-%m-%d %H:%M:%S+00:00')
tz = EWSTimeZone.timezone('Europe/London')
last_datetime = tz.localize(dt)

for item in account.inbox.filter(datetime_received__gt=last_datetime):
if isinstance(item, Message):

em_dict["username"].append(gusername)
em_dict["gprimary_smtp_address"].append(gprimary_smtp_address)
em_dict["datetime_received"].append(item.datetime_received)
em_dict["subject"].append(item.subject)
em_dict["body"].append(item.body)
em_dict["item_id"].append(item.item_id)
em_dict["sender"].append(item.sender)

# extract the email address from item.sender
emailaddr = item.sender.email_address
print ("debug email addr: ", emailaddr)

print ("downloaded emailsn")






python exchangelib






share|improve this question















share|improve this question













share|improve this question




share|improve this question








edited Dec 1 '18 at 13:43









Erik Cederstrand

3,87322138




3,87322138










asked Nov 14 '18 at 15:33









Patrick StaceyPatrick Stacey

83




83












  • This is really weird. Please post the code you are running so we can get a better understanding. Also, please turn on debug logging to find out the response XML that caused this problem.

    – Erik Cederstrand
    Nov 19 '18 at 10:16











  • Thank you Erik, the code is below (forgive my lack of experience ;) and I will turn on logging too and try later:

    – Patrick Stacey
    Nov 28 '18 at 15:15











  • If you want the email address of the sender, just access the property: item.sender.email_address. I have cleaned up your code a bit to show you how to do it.

    – Erik Cederstrand
    Nov 29 '18 at 15:41











  • awesome, how kind. Thanks very much Erik. Sorry not had time to provide the logging yet. Best. P

    – Patrick Stacey
    Nov 30 '18 at 16:15

















  • This is really weird. Please post the code you are running so we can get a better understanding. Also, please turn on debug logging to find out the response XML that caused this problem.

    – Erik Cederstrand
    Nov 19 '18 at 10:16











  • Thank you Erik, the code is below (forgive my lack of experience ;) and I will turn on logging too and try later:

    – Patrick Stacey
    Nov 28 '18 at 15:15











  • If you want the email address of the sender, just access the property: item.sender.email_address. I have cleaned up your code a bit to show you how to do it.

    – Erik Cederstrand
    Nov 29 '18 at 15:41











  • awesome, how kind. Thanks very much Erik. Sorry not had time to provide the logging yet. Best. P

    – Patrick Stacey
    Nov 30 '18 at 16:15
















This is really weird. Please post the code you are running so we can get a better understanding. Also, please turn on debug logging to find out the response XML that caused this problem.

– Erik Cederstrand
Nov 19 '18 at 10:16





This is really weird. Please post the code you are running so we can get a better understanding. Also, please turn on debug logging to find out the response XML that caused this problem.

– Erik Cederstrand
Nov 19 '18 at 10:16













Thank you Erik, the code is below (forgive my lack of experience ;) and I will turn on logging too and try later:

– Patrick Stacey
Nov 28 '18 at 15:15





Thank you Erik, the code is below (forgive my lack of experience ;) and I will turn on logging too and try later:

– Patrick Stacey
Nov 28 '18 at 15:15













If you want the email address of the sender, just access the property: item.sender.email_address. I have cleaned up your code a bit to show you how to do it.

– Erik Cederstrand
Nov 29 '18 at 15:41





If you want the email address of the sender, just access the property: item.sender.email_address. I have cleaned up your code a bit to show you how to do it.

– Erik Cederstrand
Nov 29 '18 at 15:41













awesome, how kind. Thanks very much Erik. Sorry not had time to provide the logging yet. Best. P

– Patrick Stacey
Nov 30 '18 at 16:15





awesome, how kind. Thanks very much Erik. Sorry not had time to provide the logging yet. Best. P

– Patrick Stacey
Nov 30 '18 at 16:15












0






active

oldest

votes











Your Answer






StackExchange.ifUsing("editor", function ()
StackExchange.using("externalEditor", function ()
StackExchange.using("snippets", function ()
StackExchange.snippets.init();
);
);
, "code-snippets");

StackExchange.ready(function()
var channelOptions =
tags: "".split(" "),
id: "1"
;
initTagRenderer("".split(" "), "".split(" "), channelOptions);

StackExchange.using("externalEditor", function()
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled)
StackExchange.using("snippets", function()
createEditor();
);

else
createEditor();

);

function createEditor()
StackExchange.prepareEditor(
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader:
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
,
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
);



);













draft saved

draft discarded


















StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53303691%2fexchangelib-item-sender-returns-bytes%23new-answer', 'question_page');

);

Post as a guest















Required, but never shown

























0






active

oldest

votes








0






active

oldest

votes









active

oldest

votes






active

oldest

votes















draft saved

draft discarded
















































Thanks for contributing an answer to Stack Overflow!


  • Please be sure to answer the question. Provide details and share your research!

But avoid


  • Asking for help, clarification, or responding to other answers.

  • Making statements based on opinion; back them up with references or personal experience.

To learn more, see our tips on writing great answers.




draft saved


draft discarded














StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53303691%2fexchangelib-item-sender-returns-bytes%23new-answer', 'question_page');

);

Post as a guest















Required, but never shown





















































Required, but never shown














Required, but never shown












Required, but never shown







Required, but never shown

































Required, but never shown














Required, but never shown












Required, but never shown







Required, but never shown







這個網誌中的熱門文章

How to read a connectionString WITH PROVIDER in .NET Core?

Node.js Script on GitHub Pages or Amazon S3

Museum of Modern and Contemporary Art of Trento and Rovereto