Example #1
0
    def _macro_MailTo(self, args):
        from MoinMoin.util.mail import decodeSpamSafeEmail

        args = args or ''
        if args.find(',') == -1:
            email = args
            text = ''
        else:
            email, text = args.split(',', 1)

        email, text = email.strip(), text.strip()

        if self.request.user.valid:
            # decode address and generate mailto: link
            email = decodeSpamSafeEmail(email)
            icon = util.web.getLinkIcon(self.request, self.formatter, "mailto")
            result = (self.formatter.url(1, 'mailto:' + email, 'external', pretty_url=1, unescaped=1) +
                      icon +
                      self.formatter.text(text or email) +
                      self.formatter.url(0))
        else:
            # unknown user, maybe even a spambot, so
            # just return text as given in macro args
            email = self.formatter.code(1) + \
                self.formatter.text("<%s>" % email) + \
                self.formatter.code(0)
            if text:
                result = self.formatter.text(text) + " " + email
            else:
                result = email

        return result
Example #2
0
 def testDecodeSpamSafeMail(self):
     """util.mail: decoding spam safe mail"""
     for coded, expected in self._tests:
         result = mail.decodeSpamSafeEmail(coded)
         self.assertEqual(result, expected,
                          'Expected "%(expected)s" but got "%(result)s"' %
                          locals())