@@ -340,7 +340,7 @@ def __init__(self, *, parent=None, con=None, **kwargs):
340340 self .web_link = cloud_data .get (cc ('webLink' ), '' )
341341
342342 # Headers only retrieved when selecting 'internetMessageHeaders'
343- self .message_headers = cloud_data .get (cc ('internetMessageHeaders' ), [])
343+ self .__message_headers = cloud_data .get (cc ('internetMessageHeaders' ), [])
344344
345345 def __str__ (self ):
346346 return self .__repr__ ()
@@ -622,6 +622,31 @@ def single_value_extended_properties(self):
622622 """ singleValueExtendedProperties """
623623 return self .__single_value_extended_properties
624624
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+
625650 def to_api_data (self , restrict_keys = None ):
626651 """ Returns a dict representation of this message prepared to be sent
627652 to the cloud
@@ -686,6 +711,9 @@ def to_api_data(self, restrict_keys=None):
686711 # this property does not form part of the message itself
687712 message [cc ('parentFolderId' )] = self .folder_id
688713
714+ if self .message_headers :
715+ message [cc ('internetMessageHeaders' )] = self .message_headers
716+
689717 if restrict_keys :
690718 for key in list (message .keys ()):
691719 if key not in restrict_keys :
0 commit comments