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
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())