web-dev-qa-db-fra.com

Comment envoyer et recevoir des emails dans mailgun (configuré pour un sous-domaine) à partir du domaine racine

Mailgun recommande de créer des enregistrements DNS (TXT, MX, ..) pour un sous-domaine, mais les états d'envoi et de réception avec le domaine racine sont possibles lors d'une configuration ultérieure. J'ai créé toutes les étapes nécessaires pour mail.example.com chez mon registraire et chez Mailgun (ajout d'un domaine, configuration d'itinéraires, etc.). Je peux maintenant recevoir et envoyer des courriels à [email protected] configuré.

Que dois-je changer maintenant pour pouvoir envoyer et recevoir à [email protected]? Quels sont les changements nécessaires au niveau du registraire, dans mailgun et dans les paramètres smtp de gmail (pour l'envoi depuis gmail via mailgun )?

Merci beaucoup!

14
solimanelefant

Si vous configurez Mailgun pour un sous-domaine, vous pouvez envoyer des courriers électroniques à partir de votre domaine principal en transmettant une variable to appropriée. Par exemple, en utilisant Node.js + nodemailer + nodemailer-mailgun-transport:

var nodemailer = require('nodemailer'),
    mg = require('nodemailer-mailgun-transport'),
    auth = { api_key: 'foobar', domain: 'mail.example.com' },
    nodemailerMailgun = nodemailer.createTransport(mg({ auth: auth }));

nodemailerMailgun.sendMail({
    from: '[email protected]',
    to: '[email protected]',
    subject: 'Hey you, awesome!',
    text: 'Mailgun rocks, pow pow!'
}, someCallback);

Ou vous pouvez lire d'autres méthodes d'envoi via une API dans leur documentation . Quoi qu'il en soit, même si votre Mailgun est configuré pour un sous-domaine, vous pouvez envoyer un courrier électronique à partir de votre domaine principal.

Cependant (!), Vos enregistrements MX sont configurés pour votre sous-domaine et vous ne pouvez donc recevoir que des courriels. Pour pouvoir recevoir des e-mails sur votre domaine principal, ajoutez votre domaine principal dans le panneau de configuration de Mailgun, par exemple. pas mail.example.com, mais example.com, et créez une configuration correspondante dans votre panneau de configuration DNS pour ce domaine principal, exemple de configuration pour le DNS de DigitalOcean pour example.com (pas le sous-domaine):

TXT    @                v=spf1 include:mailgun.org ~all
TXT    krs._domainkey   k=rsa; p=MIGfM...blablabla
CNAME  email            mailgun.org.
MX     10               mxa.mailgun.org.
MX     10               mxb.mailgun.org.

N'oubliez pas que Mailgun n'a pas de fonctionnalité de boîte aux lettres. Il ne peut transférer que les courriers électroniques entrants, si vous avez un ensemble de règles approprié. La plupart des gens délèguent les enregistrements MX de leur domaine principal à un ESP plus gérable, comme Gmail. Vous ne pouvez avoir qu'un seul jeu d'enregistrements MX pour un domaine, vous devez donc choisir Gmail ou Mailgun.

16
Anton Egorov

Je n’utilise que Mailgun depuis peu de temps, mais je peux vous aider avec ce que j’ai appris jusqu’à présent.

Vos enregistrements DNS peuvent être configurés pour Mailgun ou un tiers tel que Gmail. Je ne pense pas qu'ils vont utiliser les deux. Je ne sais pas ce que cela ferait pour le routage, car il ne saurait pas où aller.

Pour votre sous-domaine Mailgun, vous avez utilisé mail.example.com avec l'adresse électronique [email protected]. Le mien est en cours d'exécution, mais je n'ai pas du tout créé d'adresses e-mail de ce type. Mes formats de messagerie sont toujours [email protected].

Je vais coller ceci dans un email que j'ai reçu et le modifier pour qu'il corresponde à votre exemple fourni:

Il semblerait que vous ayez défini les enregistrements MX pour le domaine racine, exemple.com. Cependant, le domaine que vous utilisez avec Mailgun est mail.example.com. Vous devrez modifier le nom d’hôte d’exemple.com en mail.exemple.com pour que ces derniers puissent être acheminés correctement.

Comme Mailgun n’a pas de boîte aux lettres, recevoir un courrier électronique avec Mailgun nécessite l’utilisation d’un sous-domaine avec des enregistrements MX pointant vers Mailgun, ainsi que l’utilisation de notre fonctionnalité Routes. Un bon moyen de comprendre Routes est un mécanisme sophistiqué de filtrage et de transmission. Avec Routes, vous pouvez soit:

  • transférer le courrier électronique entrant vers un autre environnement pour le stockage (comme une adresse électronique ou un noeud final sur votre serveur)
  • stocker un message temporairement (jusqu'à 3 jours) et le récupérer à l'aide de l'API Messages
  • arrêter le traitement d'un message (c'est-à-dire supprimer certains messages au lieu de les transférer ou de les stocker)
2
jp2code

Si vous essayez d'utiliser le package Anymail de Django pour envoyer un courrier électronique Mailgun à partir d'un sous-domaine, vous devez l'envoyer à l'aide de l'objet EmailMultiAlternatives et spécifier le domaine de l'expéditeur de courrier électronique de la manière suivante:

from Django.core.mail import EmailMultiAlternatives

msg = EmailMultiAlternatives("Subject", "text body",
                             "[email protected]", ["[email protected]"])
msg.esp_extra = {"sender_domain": "mg.example.com"}

msg.send()
0
Rob