4 ms·
It's not about email being easy. It's that I don't want my email getting out (spam and all that - you send one email to a bad behaving mailing list, and your em
by greenhouse_gas 9y ago
It's not about email being easy. It's that I don't want my email getting out (spam and all that - you send one email to a bad behaving mailing list, and your email is all over the internet forever for spambots to harvest.)
- zenhack 9y agoRealistically if you've got commits in a public git repo, your email address is public no matter how they got there.
- detaro 9y agoRealistically, people concerned about that (or just being lazy) don't put real e-mail addresses in there.
- kazinator 9y agoYou can post using a fake or cloaked From: address to my mailing lists. I don't require a subscription for posting. You can always check the mail archive for replies to your post, if you care. I don't allow mail archives to be downloaded in the raw format. I added extra patches to the archiving software to conceal addresses better. Mailman just replaces @ with "at" which spam harvesters could easily reverse; I made it better for my users; see below. Kazinator's got your back! 0:webserver:/var/lib/mailman# quilt applied privacy pipermail-to-lurker 0:webserver:/var/lib/mailman# cat patches/privacy Index: mailman/Mailman/Archiver/HyperArch.py =================================================================== --- mailman.orig/Mailman/Archiver/HyperArch.py 2012-11-29 21:26:57.000000000 -0800 +++ mailman/Mailman/Archiver/HyperArch.py 2012-11-29 22:27:51.000000000 -0800 @@ -93,6 +93,8 @@ True = 1 False = 0 +def hide_domain(s): + return re.sub(r'([\w])([-+,.\w]+)([\w])@([\w])([-+.\w]+)([\w])[.]([\w]+)', '\g<1>...\g<3>@\g<4>...\g<6>.\g<7>', s) def html_quote(s, lang=None): @@ -281,10 +283,9 @@ try: i18n.set_language(lang) if self.author == self.email: - self.author = self.email = re.sub('@', _(' at '), - self.email) + self.author = self.email = hide_domain(self.email) else: - self.email = re.sub('@', _(' at '), self.email) + self.email = hide_domain(self.email) finally: i18n.set_translation(otrans) @@ -412,9 +413,7 @@ otrans = i18n.get_translation() try: i18n.set_language(self._lang) - atmark = unicode(_(' at '), Utils.GetCharSet(self._lang)) - subject = re.sub(r'([-+,.\w]+)@([-+.\w]+)', - '\g<1>' + atmark + '\g<2>', subject) + subject = hide_domain(subject) finally: i18n.set_translation(otrans) self.decoded['subject'] = subject @@ -466,7 +465,7 @@ d["in_reply_to_url"] = url_quote(self._message_id) if mm_cfg.ARCHIVER_OBSCURES_EMAILADDRS: # Point the mailto url back to the list - author = re.sub('@', _(' at '), self.author) + author = hide_domain(self.author) emailurl = self._mlist.GetListEmail() else: author = self.author @@ -574,10 +573,8 @@ if mm_cfg.ARCHIVER_OBSCURES_EMAILADDRS: otrans = i18n.get_translation() try: - atmark = unicode(_(' at '), cset) i18n.set_language(self._lang) - body = re.sub(r'([-+,.\w]+)@([-+.\w]+)', - '\g<1>' + atmark + '\g<2>', body) + body = hide_domain(body) finally: i18n.set_translation(otrans) # Return body to character set of article. @@ -1049,7 +1046,7 @@ author = self.get_header("author", article) if mm_cfg.ARCHIVER_OBSCURES_EMAILADDRS: try: - author = re.sub('@', _(' at '), author) + author = hide_domain(author) except UnicodeError: # Non-ASCII author contains '@' ... no valid email anyway pass @@ -1221,7 +1218,7 @@ text = jr.group(1) length = len(text) if mm_cfg.ARCHIVER_OBSCURES_EMAILADDRS: - text = re.sub('@', atmark, text) + text = hide_domain(text) URL = self.maillist.GetScriptURL( 'listinfo', absolute=1) else: Index: mailman/Mailman/Utils.py =================================================================== --- mailman.orig/Mailman/Utils.py 2012-11-29 21:26:57.000000000 -0800 +++ mailman/Mailman/Utils.py 2012-11-29 21:26:58.000000000 -0800 @@ -438,9 +438,9 @@ When for_text option is set (not default), make a sentence fragment instead of a token.""" if for_text: - return addr.replace('@', ' at ') + return 'address-hidden' else: - return addr.replace('@', '--at--') + return 'address-hidden' def UnobscureEmail(addr): """Invert ObscureEmail() conversion."""