'Create message instance to be sent with :meth:`publish`.
Arguments:
body (Any): Message body.
delivery_mode (bool): Set custom delivery mode.
Defaults to :attr:`delivery_mode`.
priority (int): Message priority, 0 to broker configured
max priority, where higher is better.
content_type (str): The messages content_type.  If content_type
is set, no serialization occurs as it is assumed this is either
a binary object, or you\'ve done your own serialization.
Leave blank if using built-in serialization as our library
properly sets content_type.
content_encoding (str): The character set in which this object
is encoded. Use "binary" if sending in raw binary objects.
Leave blank if using built-in serialization as our library
properly sets content_encoding.
properties (Dict): Message properties.
headers (Dict): Message headers.'

def Message(self, body, delivery_mode=None, properties=None, **kwargs):

    properties = ({} if (properties is None) else properties)
    properties[u'delivery_mode'] = maybe_delivery_mode(self.delivery_mode)
    return self.channel.prepare_message(body, properties=properties, **kwargs)
