Skip to content

Commit 650b735

Browse files
authored
Update README.md with spam prevention (#35)
I've added a section on how you can prevent mail to be treated as spam. This can be quite common when you change the `from address` to that of a user email address. In fact, it usually will occur if the `from address` domain is not linked to the sending host
1 parent 363df2f commit 650b735

File tree

1 file changed

+22
-0
lines changed

1 file changed

+22
-0
lines changed

README.md

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -95,6 +95,28 @@ app.service('mailer').create(email).then(function (result) {
9595
});
9696
```
9797

98+
## Prevent mail to be treated as spam
99+
#### DKIM to prevent mail to be treated as spam
100+
A more and more appearing 'issue' these days, is that mail sent can be seen as spam. Especially if the 'from address' is not linked to the IP of the sending host. To prevent this, you can use a DKIM record. It does require a DNS mutation on the domain reflecting the 'from address', but it will prevent this. Following these steps you can implement this in `node-mailer`
101+
102+
1. Go to https://easydmarc.com/tools/DKIM-record-generator to generate a DKIM record. In the form, enter the domain name (equal to the `from address` domain), and something to use as a selector e.g. `feathersMailer`.
103+
2. Ask a network administrator to publish the record which is generated in the domain.
104+
3. Ensure the record is active using https://easydmarc.com/tools/dkim-lookup. Once the test passes, continue (it might need time to replicate across the web)
105+
4. Add the following information to the `email` constance defined in the example above, so it becomes like this
106+
```js
107+
const email = {
108+
109+
subject: 'SMTP test',
110+
html: 'This is the email body',
111+
domainName: 'THE DOMAIN ENTERED FOR THE RECORD (FROM ADDRESS DOMAIN)',
112+
keySelector: 'THE SELECTOR YOU ENTERED TO GENERATE THE RECORD',
113+
privateKey: 'THE CONTENT FROM THE `PRIVATE KEY` BUT REPLACE `linebreaks` WITH `\n`'
114+
};
115+
```
116+
***Important:*** You must replace the `linebreaks` of the private key with `\n` or it won't work.
117+
118+
A use case for this, could be a multitenancy application. There the reply domains would be different, but you might want to send from the local SMTP server of the ISP. You would then make it possible for each tenant to configure the three values in their tenant settings within the application, and dynamically collect it prior to sending the mail.
119+
98120
## License
99121

100122
Copyright (c) 2018

0 commit comments

Comments
 (0)