예제 #1
0
    def handle(self, **options: Optional[str]) -> None:
        if options['fixture'] is None:
            self.print_help('./manage.py', 'send_to_email_mirror')
            raise CommandError

        if options['stream'] is None:
            stream = "Denmark"
        else:
            stream = options['stream']

        realm = self.get_realm(options)
        if realm is None:
            realm = get_realm("zulip")

        full_fixture_path = os.path.join(settings.DEPLOY_ROOT,
                                         options['fixture'])

        # parse the input email into EmailMessage type and prepare to process_message() it
        message = self._parse_email_fixture(full_fixture_path)
        self._prepare_message(message, realm, stream)

        mirror_email_message(
            message['To'].addresses[0].addr_spec,
            base64.b64encode(message.as_bytes()).decode(),
        )
예제 #2
0
    def handle(self, **options: Optional[str]) -> None:
        if options['fixture'] is None:
            self.print_help('./manage.py', 'send_to_email_mirror')
            raise CommandError

        if options['stream'] is None:
            stream = "Denmark"
        else:
            stream = options['stream']

        realm = self.get_realm(options)
        if realm is None:
            realm = get_realm("zulip")

        full_fixture_path = os.path.join(settings.DEPLOY_ROOT,
                                         options['fixture'])

        # parse the input email into Message type and prepare to process_message() it
        message = self._parse_email_fixture(full_fixture_path)
        self._prepare_message(message, realm, stream)

        data: Dict[str, str] = {}
        data['recipient'] = str(
            message['To'])  # Need str() here to avoid mypy throwing an error
        data['msg_text'] = message.as_string()
        mirror_email_message(data)
예제 #3
0
def email_mirror_message(
    request: HttpRequest, rcpt_to: str = REQ(), msg_base64: str = REQ(),
) -> HttpResponse:
    result = mirror_email_message(rcpt_to, msg_base64)
    if result["status"] == "error":
        return json_error(result['msg'])
    return json_success()
예제 #4
0
def email_mirror_message(request: HttpRequest,
                         data: Dict[str, str]=REQ(validator=check_dict([
                             ('recipient', check_string),
                             ('msg_text', check_string)]))) -> HttpResponse:
    result = mirror_email_message(ujson.loads(request.POST['data']))
    if result["status"] == "error":
        return json_error(result['msg'])
    return json_success()
예제 #5
0
def email_mirror_message(request, data=REQ(validator=check_dict([
        ('recipient', check_string),
        ('msg_text', check_string),
]))):
    # type: (HttpRequest, Dict[str, str]) -> HttpResponse
    result = mirror_email_message(ujson.loads(request.POST['data']))
    if result["status"] == "error":
        return json_error(result['msg'])
    return json_success()