Dans ce didacticiel, vous apprendrez à installer sSMTP , un serveur de transfert simple.
Mailtrap.io propose un faux serveur de messagerie pour les développeurs. Utilisez-le pour envoyer des rapports ou des e-mails pendant la phase de développement à de vraies adresses, mais interceptez-les sur Mailtrap.io (ils ne sont jamais remis au destinataire final) et voyez immédiatement comment votre e-mail HTML est rendu ou comment un nouveau bouton CTO se démarque.
En intégrant sSMTP et Mailtrap, votre VPS de développement Ubuntu peut utiliser le même serveur d'envoi d'e-mails à des fins d'envoi général, comme les rapports de fin de tâche cron.
De cette façon, vous pouvez tester votre application avec de vraies adresses e-mail et vous faire une idée de la façon dont elle se comporte du côté client, le tout sans inonder vos comptes de messagerie personnels ou de collègues.
Conditions préalables
- Vultr VPS avec Ubuntu 16.04 installé et mis à jour.
- Compte Mailtrap.io.
- Un utilisateur sudo non root .
- Éditeur de texte de votre choix, nous utiliserons
nano
.
- Sauvegarde ou instantané de votre installation actuelle.
Procédure d'installation
Connectez-vous à votre VPS en tant qu'utilisateur régulier. Faites-vous administrateur en émettant ce qui suit.
sudo su
Confirmez-le ensuite avec votre mot de passe. Installez le package sSMTP côté serveur avec mutt comme client de messagerie à des fins de test.
apt install ssmtp mutt
Configuration
Vous devez maintenant le faire fonctionner avec votre mailtrap
compte.
Vous aurez besoin de vos identifiants et noms de serveur. Dans notre cas, le serveur est smtp.mailtrap.io
avec port 2525
.
Nous éditons deux fichiers. Tout d'abord, tout en étant connecté en tant que root, modifiez le fichier de configuration.
nano /etc/ssmtp/ssmtp.conf
Par défaut, il ressemble au texte suivant.
# Config file for sSMTP sendmail
#
# The person who gets all mail for userids < 1000
# Make this empty to disable rewriting.
root=postmaster
# The place where the mail goes. The actual machine name is required no
# MX records are consulted. Commonly mailhosts are named mail.domain.com
mailhub=mail
# Where will the mail seem to come from?
#rewriteDomain=
# The full hostname
hostname=example.com
# Are users allowed to set their own From: address?
# YES - Allow the user to specify their own From: address
# NO - Use the system generated From: address
#FromLineOverride=YES
À ce stade, vous pouvez modifier les entrées pour qu'elles correspondent à vos propres valeurs ou simplement remplacer tout le contenu par vos informations spécifiques. Les entrées en majuscules contiennent vos données réelles. [email protected]
est l'e-mail à partir duquel vous souhaitez envoyer les e-mails. MAILTRAP_USERNAME
et MAILTRAP_PASSWORD
sont générés pour vous sur Mailtrap.io. Les deux sont de longues chaînes aléatoires. Recherchez-le dans votre boîte aux lettres Mailtrap sous SMTP Settings
.
[email protected]
mailhub=smtp.mailtrap.io:2525
AuthUser=MAILTRAP_USERNAME
AuthPass=MAILRTRAP_PASSWORD
FromLineOverride=Yes
Enregistrez le fichier. Avec nano appuyez sur " Ctrl-X
" et confirmez avec " Y
".
Le deuxième fichier qui doit être édité est pour le mappage des comptes d'utilisateurs locaux aux adresses e-mail externes, l'alias inverse. Ouvrez le fichier.
nano /etc/ssmtp/revaliases
Ajoutez vos entrées à la fin pour qu'elles ressemblent à ce texte.
# sSMTP aliases
#
# Format: local_account:outgoing_address:mailhub
#
# Example: root:[email protected]:mailhub.your.domain[:port]
# where [:port] is an optional port number that defaults to 25.
root:[email protected]:smtp.mailtrap.io:2525
username:[email protected]:smtp.mailtrap.io:2525
Essentiellement, le système doit envoyer tous les e-mails du compte local en root
tant qu'utilisateur de messagerie [email protected]
via le mailtrap
serveur. Entrez autant d'utilisateurs que vous le souhaitez, chacun dans sa propre ligne. Si vous avez seulement besoin root
d'envoyer des messages, omettez simplement les autres lignes. Vous pouvez revenir plus tard et ajouter des utilisateurs au besoin.
Enregistrez le fichier. Avec nano appuyez sur " Ctrl-X
" et confirmez avec " Y
".
Vous avez terminé. Vous voudrez peut-être le voir en action en vous envoyant un e-mail. Pour ce faire, créez votre message et envoyez-le.
echo "This is the body" | mutt -s "Hello World" [email protected]
Connectez-vous à votre compte Mailtrap et consultez votre boîte de réception de démonstration. Le courrier devrait déjà y attendre.
Conclusion
Enfin, basculez votre session de terminal de l' root
arrière vers l'utilisateur normal.
exit
Éventuellement, ajoutez [email protected]
à votre crontab. Pour faire un test rapide, disons, en vérifiant les sous-dossiers de votre /home
dossier toutes les minutes, modifiez la crontab.
crontab -e
Choisissez votre éditeur si nécessaire et ajoutez / modifiez ces lignes à la fin pour qu'elles ressemblent au texte suivant.
# Edit this file to introduce tasks to be run by cron.
#
# Each task to run has to be defined through a single line
# indicating with different fields when the task will be run
# and what command to run for the task
#
# To define the time you can provide concrete values for
# minute (m), hour (h), day of month (dom), month (mon),
# and day of week (dow) or use '*' in these fields (for 'any').#
# Notice that tasks will be started based on the cron's system
# daemon's notion of time and timezones.
#
# Output of the crontab jobs (including errors) is sent through
# email to the user the crontab file belongs to (unless redirected).
#
# For example, you can run a backup of all your user accounts
# at 5 a.m every week with:
# 0 5 * * 1 tar -zcf /var/backups/home.tgz /home/
#
# For more information see the manual pages of crontab(5) and cron(8)
#
# m h dom mon dow command
[email protected]
* * * * * ls /home
Cela s'exécute ls /home
toutes les minutes et parce qu'une MAILTO
entrée est ajoutée, envoie la réponse à cette adresse. Vous pouvez en savoir plus sur les tables crontab ici .
Enregistrez-le à la sortie. Attendez-vous à recevoir un e-mail dans Mailtrap toutes les minutes.