Dans ce guide, je vais vous montrer comment configurer rapidement une adresse e-mail pour votre site Web django à l'aide de digitalocean et namecheap:
Remarque: je suppose que vous avez déjà un nom de domaine enregistré avec namecheap et un site Web django installé sur un dropet digitalocean.
Créez un compte de messagerie privé avec namecheap
Première étape, allez sur votre compte namecheap et cliquez sur email (dans la barre de navigation):
Remarque: vous pouvez choisir une version d'essai si vous le souhaitez (qui est disponible pendant 2 mois après sa création).
Choisissez le plan dont vous avez besoin. Par exemple, j'ai sélectionné le premier plan:
Pour aller plus loin, il faut avoir un nom de domaine. Comme j'en ai déjà un sur namecheap, je clique sur "Utiliser un nom de domaine que je possède avec namecheap":
Sélectionnez ensuite le nom de domaine auquel vous souhaitez joindre l'adresse e-mail (si vous avez plusieurs noms de domaine), cliquez sur continuer:
Ajouter au panier:
Confirmer la commande:
et "Pay nowt" (n'oubliez pas de faire défiler cette page vers le bas et de cocher la case "J'ai lu et accepté toutes les conditions d'utilisation et accords de Namecheap")
Cliquez ensuite sur le bouton rouge "create mailboxes":
Sur la page suivante, vous devrez vous souvenir des enregistrements fournis dans la section jaune:
- MX mx1.privateemail.com
- MX mx2.privateemail.com
- TXT v=spf1 include ... com all
Sur la même page cliquez sur "reate mailbox now", une fenêtre pop-up apparaîtra alors vous demandant de créer une adresse email (vous pouvez choisir par exemple contact@mondomaine.com):
Connectez-vous à votre compte de messagerie privé
Aller sur google par exemple et chercher "private email"
et entrez l'adresse e-mail et le mot de passe que vous venez juste de créer pour vous connecter à votre compte:
L'interface suivante devrait alors apparaître (vous pouvez par exemple envoyer un mail à cette adresse pour vérifier qu'elle fonctionne bien):
Configurer votre droplet DigitalOcean
Configurons maintenant votre droplet DigitalOcean. (Remarque: si vous n'avez pas encore acheminé un nom de domaine que vous possédez vers votre droplet digitalocean, cliquez simplement sur créer et «Domaines / DNS»). Cliquez ensuite sur le nom de domaine pour lequel vous venez de créer une boîte mail:
cliquez sur 'MX'
entrez ensuite
- Hostname: @
- Mail providers Mail server: mx1.privateemail.com
et cliquer sur "Create Record".
Répétez la même opération avec
- Hostname: @
- Mail providers Mail server: mx2.privateemail.com
et cliquer de nouveau sur Create Record.
Cliquez ensuite sur TXT et entrez
- Paste TXT string here: (the txt you get on namecheap i the yellow box: v=spf1 include ... com all )
- Hostname: @
et cliquer sur "Create Record".
Terminé !
Envoyez votre premier email avec Django
Maintenant, nous pouvons envoyer des e-mails avec notre application django.
Commençons par modifier le fichier settings.py. Si nous voulons faire des tests localement (en développement). Ajoutez simplement la ligne suivante:
EMAIL_BACKEND = 'django.core.mail.backends.console.EmailBackend'
l'email ne sera pas envoyé mais sera affiché dans le terminal.
En production, ajoutez les lignes suivantes:
EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'
EMAIL_HOST = 'mail.privateemail.com'
EMAIL_HOST_USER = 'contact@mydomain.com'
EMAIL_HOST_PASSWORD = '***********'
EMAIL_PORT = 587
EMAIL_USE_TLS = True
EMAIL_USE_SSl = False
DEFAULT_FROM_EMAIL = EMAIL_HOST_USER
changez «contact@mondomaine.com» et « » en utilisant votre nom de boîte e-mail et votre mot de passe.
Dans views.py
from django.core.mail import send_mail
et pour envoyer un email:
send_mail(
msg_title,
msg_content,
'contact@mydomain.com',
[email],
fail_silently=False)
remplacez msg_title, msg_content et contact@mondomaine.com et entrez l'adresse e-mail de destination.
Remarque: qu'il peut s'agir d'une liste d'adresses e-mail
[john.doe1@gmail.com, john.doe2@gmail.com, john.doe3@gmail.com].
Références
- General Private Email configuration for mail clients and mobile devices
- Namecheap Private Email records for domains with third-party DNS
- QUESTION How to set up Email on DigitalOcean Droplet?
- Sending email
- Sending Emails in Django
- Sending email from Django via hosted SMTP
- How to send emails through Django using a private domain email address?
- SMTPRecipientsRefused in Django send email