@@ -340,7 +340,7 @@ def __init__(self, *, parent=None, con=None, **kwargs):
340
340
self .web_link = cloud_data .get (cc ('webLink' ), '' )
341
341
342
342
# Headers only retrieved when selecting 'internetMessageHeaders'
343
- self .message_headers = cloud_data .get (cc ('internetMessageHeaders' ), [])
343
+ self .__message_headers = cloud_data .get (cc ('internetMessageHeaders' ), [])
344
344
345
345
def __str__ (self ):
346
346
return self .__repr__ ()
@@ -622,6 +622,31 @@ def single_value_extended_properties(self):
622
622
""" singleValueExtendedProperties """
623
623
return self .__single_value_extended_properties
624
624
625
+ @property
626
+ def message_headers (self ):
627
+ """ Custom message headers
628
+ List of internetMessageHeaders, see definition: https://learn.microsoft.com/en-us/graph/api/resources/internetmessageheader?view=graph-rest-1.0
629
+ :type: list[dict[str, str]]
630
+ """
631
+
632
+ return self .__message_headers
633
+
634
+ @message_headers .setter
635
+ def message_headers (self , value ):
636
+ if not isinstance (value , list ):
637
+ raise ValueError ('"message_header" must be a list' )
638
+
639
+ self .__message_headers = value
640
+ self ._track_changes .add ('message_headers' )
641
+
642
+ def add_message_header (self , name , value ):
643
+ # Look if we already have the key. If we do, update it, otherwise write
644
+ for header in self .__message_headers :
645
+ if header ["name" ] == name :
646
+ header ["value" ] = value
647
+ return
648
+ self .__message_headers .append ({"name" : name , "value" : value })
649
+
625
650
def to_api_data (self , restrict_keys = None ):
626
651
""" Returns a dict representation of this message prepared to be sent
627
652
to the cloud
@@ -686,6 +711,9 @@ def to_api_data(self, restrict_keys=None):
686
711
# this property does not form part of the message itself
687
712
message [cc ('parentFolderId' )] = self .folder_id
688
713
714
+ if self .message_headers :
715
+ message [cc ('internetMessageHeaders' )] = self .message_headers
716
+
689
717
if restrict_keys :
690
718
for key in list (message .keys ()):
691
719
if key not in restrict_keys :
0 commit comments