it-swarm.com.de

So senden und empfangen Sie E-Mails in mailgun (für eine Unterdomäne konfiguriert) von der Stammdomäne aus

Mailgun empfiehlt, DNS-Einträge (TXT, MX, ..) für eine Unterdomäne zu erstellen. Das Senden und Empfangen mit der Stammdomäne ist jedoch durch eine spätere Konfiguration möglich. Ich habe alle notwendigen Schritte für mail.example.com bei meinem Registrar und bei Mailgun erstellt (Hinzufügen einer Domäne, Einrichten von Routen usw.). Ich kann jetzt E-Mails an das konfigurierte [email protected] empfangen und senden.

Was muss ich jetzt ändern, um unter [email protected] senden und empfangen zu können? Welche Änderungen sind beim Registrar, in mailgun und in meinen SMTP-Einstellungen bei gmail (zum Senden von gmail) erforderlich via mailgun)?

Vielen Dank!

14
solimanelefant

Wenn Sie Mailgun für eine Unterdomäne konfigurieren, können Sie E-Mails von Ihrer Hauptdomäne aus senden, indem Sie die entsprechende Variable to verwenden. Verwenden Sie beispielsweise 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);

Sie können auch andere Methoden zum Senden über eine API in deren Dokumenten nachlesen. Selbst wenn Ihre Mailgun für eine Unterdomäne konfiguriert ist, können Sie E-Mails von Ihrer Hauptdomäne aus senden.

(!) Ihre MX-Einträge sind jedoch für Ihre Subdomain konfiguriert, sodass Sie dort nur E-Mails erhalten können. Um E-Mails an Ihre Hauptdomäne zu erhalten, fügen Sie Ihre Hauptdomäne im Steuerungsfeld von Mailgun hinzu, z. nicht mail.example.com, sondern example.com, und nehmen Sie in Ihrem DNS-Steuerungsfeld eine entsprechende Konfiguration für diese Hauptdomäne vor. Beispielkonfiguration für DigitalOceans DNS für example.com (nicht Subdomain):

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.

Beachten Sie, dass Mailgun keine Postfachfunktionalität besitzt und eingehende E-Mails nur dann weiterleiten kann, wenn Sie über einen geeigneten Regelsatz verfügen. Die meisten Benutzer delegieren die MX-Einträge ihrer Hauptdomäne an ein besser verwaltbares ESP-System wie Google Mail. Sie können nur einen Satz MX-Einträge für eine Domäne haben . Sie müssen also entweder Gmail oder Mailgun auswählen.

16
Anton Egorov

Dazu müssen Sie mailgun-js verwenden

  1. Erfordert mailgun-js von npm

    var Mailgun = require('mailgun-js');

2. Legen Sie die Optionen für die Mailgun fest. d. h. apiKey und Domäne.

var options = {
  apiKey: 'YOUR_API_KEY',
  domain: 'YOUR_DOMAIN'
};
  1. Maili mit diesen Optionen instanziieren.

    var mailgun = new Mailgun(options);

  2. Senden Sie eine E-Mail, nachdem Sie die erforderlichen Parameter festgelegt haben.

    var data = {
        //From email
        from: '',
        // Email to contact
        to: 'To Email address',
        // CC email
        ccTo: 'CC address if any'
        // Subject
        subject: 'Mail subject',
        // Email msg
        html: 'email message or html'
    };
    
    // Send email
    mailGun.messages().send(data, callbackFunction() {
    
    });
    
3
Sandip Nirmal

Ich habe Mailgun nur kurze Zeit benutzt, aber ich kann mit dem helfen, was ich bisher gelernt habe.

Ihre DNS-Einträge können für Mailgun oder eine dritte Partei wie Google Mail eingerichtet werden. Ich glaube nicht, dass sie beides benutzen werden. Ich bin nicht sicher, was das mit dem Routing machen würde, weil es nicht wissen würde, wohin es gehen soll.

Für Ihre Mailgun-Unterdomäne haben Sie mail.example.com mit der E-Mail-Adresse [email protected] verwendet. Meine läuft, aber ich habe überhaupt keine E-Mail-Adressen erstellt. Meine E-Mail-Formate sind immer noch [email protected].

Ich füge dies aus einer E-Mail ein, die ich erhalten habe, und bearbeite es entsprechend Ihrem Beispiel:

Anscheinend haben Sie die MX-Einträge für die Stammdomäne example.com festgelegt. Die mit Mailgun verwendete Domäne ist jedoch mail.example.com. Sie müssen den Hostnamen von example.com in mail.example.com ändern, damit diese ordnungsgemäß weitergeleitet werden.

Da Mailgun keine Postfächer besitzt, müssen für den Empfang von E-Mails mit Mailgun eine Unterdomäne mit MX-Einträgen verwendet werden, die auf Mailgun zeigen, sowie die Routes-Funktion. Ein guter Weg, um Routen zu verstehen, ist ein ausgeklügelter Filter- und Weiterleitungsmechanismus. Mit Routen können Sie entweder:

  • leiten Sie die eingehenden E-Mails zur Speicherung an eine andere Umgebung weiter (z. B. eine E-Mail-Adresse oder einen Endpunkt auf Ihrem Server)
  • speichern Sie eine Nachricht vorübergehend (bis zu 3 Tage) und rufen Sie sie mit der Nachrichten-API ab
  • stoppen der Verarbeitung einer Nachricht (d. h. das Löschen bestimmter Nachrichten, anstatt sie weiterzuleiten oder zu speichern)
2
jp2code

Wenn Sie versuchen, das Anymail-Paket von Django zum Senden von Mailgun-E-Mails aus einer Unterdomäne zu verwenden, müssen Sie die E-Mail mit dem EmailMultiAlternatives-Objekt senden und die E-Mail-Absender-Domäne folgendermaßen angeben:

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