### Is there an existing issue for this?

- [X] I have searched the existing issues

### Feature description

I would like to request extending `sns_listener` with an ability to understand `email-json` next to `email` protocol.

### 🧑‍💻 Implementation

1. check if protocol is `email` or `email-json`
2. for email json interpret body/message as json

### Anything else?

_No response_
"SignatureVersion": "1",
        
        
        "Signature": "EXAMPLEpH+..",
        "SigningCertURL": "https://sns.us-east-1.amazonaws.com/SimpleNotificationService-0000000000000000000000.pem",
    }
    for key in ["Subject", "SubscribeURL", "Token"]:
        if req_data.get(key):
            data[key] = req_data[key][0]
    for key in HTTP_SUBSCRIPTION_ATTRIBUTES:
        if key in subscriber:
            data[key] = subscriber[key]
    attributes = get_message_attributes(req_data)
    if attributes:
        data["MessageAttributes"] = attributes
    return json.dumps(data)
def create_sqs_message_attributes(subscriber, attributes):
    if not is_raw_message_delivery(subscriber):
        return {}
    message_attributes = {}
    for key, value in attributes.items():
        if value.get("Type"):
            attribute = {"DataType": value["Type"]}
            if value["Type"] == "Binary":
                attribute["BinaryValue"] = base64.decodebytes(to_bytes(value["Value"]))
            else:
                attribute["StringValue"] = str(value.get("Value", ""))
            message_attributes[key] = attribute
    return message_attributes
def prepare_message_attributes(message_attributes):