![]() |
4 роки тому | |
---|---|---|
app | 4 роки тому | |
bootstrap | 6 роки тому | |
config | 4 роки тому | |
database | 4 роки тому | |
public | 4 роки тому | |
resources | 4 роки тому | |
routes | 4 роки тому | |
storage | 6 роки тому | |
tests | 4 роки тому | |
.editorconfig | 6 роки тому | |
.env.example | 4 роки тому | |
.gitattributes | 6 роки тому | |
.gitignore | 6 роки тому | |
.php_cs | 6 роки тому | |
.prettierignore | 6 роки тому | |
.prettierrc | 6 роки тому | |
LICENSE.md | 6 роки тому | |
README.md | 4 роки тому | |
SECURITY.md | 5 роки тому | |
SELF-HOSTING.md | 4 роки тому | |
artisan | 6 роки тому | |
composer.json | 4 роки тому | |
composer.lock | 4 роки тому | |
package-lock.json | 4 роки тому | |
package.json | 4 роки тому | |
phpunit.xml | 4 роки тому | |
server.php | 6 роки тому | |
tailwind.config.js | 5 роки тому | |
webpack.mix.js | 6 роки тому | |
yarn.lock | 4 роки тому |
This is the source code for self-hosting AnonAddy.
AnonAddy is short for "Anonymous Email Address". The word "Addy" is internet slang for email address, e.g.
"My addy is being spammed. I should've kept it private."
I made this service after trying a few other options that do a similar thing. I was really interested in how they worked and loved the thought of protecting my real email addresses from spam.
I also wanted to address some issues with other services such as:
I made the code open-source to show everyone what was going on behind the scenes and to allow others to help improve the application.
I use this service myself for the vast majority of sites I'm signed up to.
There are a number of reasons you should consider using this service:
No I definitely do not store/save any emails that pass through the server.
Yes you can use your own domain name so you can also have *@example.com as your aliases. To do so you simply need to add a TXT record to verify your ownership of the domain. Then you will need to add an MX record to your domain so that our server can handle incoming emails. You can then add a few other records to enable sending from your domain too.
Here are a few reasons I can think of:
Yes there is an open-source browser extension available to download for Firefox and Chrome (also available on other chromium based browsers such as Brave and Vivaldi). You can use the extension to generate new aliases remotely.
On the recipients page you simply need to click "Add public key" and paste in your public key data. Now all emails forwarded to you will be encrypted with your key. You should also replace the subject line of forwarded messages in your account settings as this cannot be encrypted.
Yes attachments are part of the email body and are also encrypted if you have it enabled.
Yes when you have encryption enabled all forwarded emails are signed using our mailer@anonaddy.me private key.
You can add this key to your own keyring so that you can verify emails have come from us.
The fingerprint of the mailer@anonaddy.me key is "26A987650243B28802524E2F809FD0D502E2F695" you can find the key on https://keys.openpgp.org.
If you're concerned that your aliases are all linked by your username e.g. @johndoe.anonaddy.com, then you have a couple of options:
The server is located in Amsterdam, Netherlands with Greenhost.net. Greenhost focuses greatly on privacy and security and their servers run entirely on Dutch wind energy.
It's good to keep your guard up when online so you should never trust anyone 100%. I'll try my best to be as honest and transparent as I can but if you still aren't convinced you can always just fire up your own server and self-host this application. You'll need to know about server administration and PHP. I'll be adding more details on how to do this soon.
The limit is currently set to 10 which should suffice in the vast majority of situations.
When you delete your account the following happens:
Yes this will work with any provider, although I can't guarantee it won't land in spam initially.
Each forwarded email has a Reply-To: header set. This header will look something like this:
Reply-To: <>
Where hello@example.com is the address of the person who sent you the email and alias@johndoe.anonaddy.com is the alias that forwarded you the email.
Almost all mail clients respect the Reply-To: header, so all you need to do is click reply and it should automatically fill the To: field with the correct address.
Some users have reported that Gmail's web mail has not been using the Reply-To header. If this is the case then you will have to manually copy the value of the Reply-To header and use this instead.
To check if a reply has worked properly check in your dashboard if the reply count has been incremented for that alias.
At the moment the site does not automatically strip out the "This email was sent to..." text from forwarded emails when you reply to them. You need to either remove this from the quoted text manually or set the banner information to "off" in your account settings.
This works in the same way as replying to an email.
Let's say that you have the alias first@johndoe.anonaddy.com and you want to send an email to hello@example.com.
All you need to do is enter the following in the To: field.
Note: you must send the email from a verified recipient on your account.
Then send the email exactly as you would any other. To check that the email has sent successfully, look in your dashboard at the sent count column and see if it has been incremented for that alias.
This works exactly the same for UUID/Random Word aliases, additional usernames and custom domains.
You can even use the send from feature to create an alias on the fly that does not yet exist. This only works for standard aliases or those at custom domains that behave as a catch-all.
You must generate aliases that use shared domains (e.g. circus.waltz449@anonaddy.me) beforehand in order to be able to send from them.
If you need to send an email to an address with an extension e.g. hello+whatever@example.com then it's exactly the same method:
Just enter the extension too!
No, your real email will not be shown, the email will look as if it has come from us instead. Just make sure not to include anything that might identify you when composing the reply, i.e. your full name.
Yes you can add attachments to emails forwarded and replies. Attachments count towards your bandwidth.
The max email size is currently set to 10MB (including attachments).
If you cancel your subscription it will remain active until the end of your current billing cycle, you will still be able to use your paid plan features until the billing cycle ends.
A few days before your billing cycle ends you will receive an email letting you know the steps you need to take to prevent the loss of any emails. Shortly after ending the following will happen:
You will not be able to activate any of the above again until you resubscribe.
No, Stripe will instead be given an alias. This alias will only be created if Stripe sends an email to it, for example if your card payment fails or if your card has expired.
The following is in place to help prevent spam:
The server is running a local DNS caching server to improve the speed of queries. DNS.WATCH resolvers are used as a fallback.
Not unless you are really going to town. Each user is throttled to 200 emails per hour through the server.
Currently you are limited to creating 10 new aliases per hour on the free plan, 20 per hour on the Lite plan and 50 per hour on the Pro plan. If you try to create more than this the emails will be deferred until you are back below the limit.
Each time a new email is received Postfix calculates its size in bytes. A column in the database is then simply incremented by that size when the email is forwarded or a reply is sent. At the start of each month your bandwidth is reset to 0.
I don't use rolling 30 day total as the only way to do this would be to log the date and size of every single email received.
Blocked emails do not count towards your bandwidth (e.g. an alias is inactive or deleted).
The average email is about 76800 bytes (75KB), this is roughly equivalent to 7,000 words in plain text. So the 10MB monthly allowance would be around 140 emails, the Lite plan's 50MB would be almost 700 emails and the Pro plan's 500MB would be almost 7,000 emails.
If you get close to your limit you'll be sent an email letting you know. If you continue and go over your limit the server will start discarding emails until your bandwidth resets the next month or you upgrade your plan.
You can add 1 additional username as a Lite user and up to 3 additional usernames as a Pro user for totals of 2 and 4 respectively (including the one you signed up with). You can currently only login with the one that you originally signed up with.
Please make sure to add mailer@anonaddy.me, mailer@anonaddy.com and any other aliases you use to your address book and also to check your spam folder. Make sure to mark emails from us as safe if they turn up in spam.
If an alias has been previously deleted and you try to send email to it, the emails will be rejected with an error message - "554 5.7.1 Recipient address rejected: Access denied".
Check that you have not deactivated the alias, custom domain or additional username. When any of these are deactivated, emails will be silently discarded, they will not be rejected or return any error message.
The sender of the email may be failing SPF, DMARC or DNS blacklist checks resulting in the email being rejected. The sender should also have correct reverse DNS setup and use a FQDN as their hostname.
If you are forwarding emails to an icloud.com email address some users are having issues with a small number of emails being rejected (often those from Facebook).
For some reason Apple seems to think these emails are spam and returns this error message:
Diagnostic-Code: smtp; 550 5.7.1 [CS01] Message rejected due to local policy.
I have contacted Apple multiple times about this but they have not yet responded.
If you are having issues with emails being rejected as "possibly spammy" by Google, iCloud or Microsoft then try adding a GPP key and enabling encryption. This will prevent the email's content being scanned and reduce the change of it being rejected.
If you still aren't receiving emails please contact me.
I am very passionite about this project. I use it myself everyday and will be keeping it running indefinitely.
Yes it has over 130 automated PHPUnit tests written.
You will need to set up your own server with Postfix so that you can pipe the received mail to the application. You can find more information here https://github.com/anonaddy/anonaddy#self-hosting.
My name is Will Browning, I'm a web developer from the UK and an advocate for online privacy and open-source software. You can find me on Twitter although I don't tweet that much!
For any other questions just send an email to - contact@anonaddy.com (GPG Key)
For full details please see the self-hosting instructions file.
Thanks to https://gitlab.com/mailcare/mailcare and https://github.com/niftylettuce/forward-email for their awesome open-source projects that helped me along the way.
The MIT License (MIT). Please see License File for more information.