web-dev-qa-db-ja.com

ルートドメインからmailgun(サブドメイン用に構成)でメールを送受信する方法

Mailgunは、サブドメインのDNS(TXT、MX、..)レコードを作成することをお勧めしますが、ルートドメインとの送受信は後の設定で可能であると述べています。レジストラとMailgunでmail.example.comに必要なすべての手順を作成しました(ドメインの追加、ルートの設定など)。これで、設定済みの[email protected]にメールを送受信できます。

[email protected]で送受信できるようにするには、何を変更する必要がありますか?レジストラ、メールガン、およびGmailのSMTP設定(GmailからMailgun経由で送信する場合)で必要な変更は何ですか?

どうもありがとうございました!

16
solimanelefant

Mailgunをサブドメイン用に構成すると、適切なto変数を渡してメインドメインからメールを送信できます。たとえば、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);

または、APIを介して送信する他の方法について読むこともできます ドキュメント内 。とにかく、Mailgunがサブドメイン用に構成されている場合でも、メインドメインからメールを送信できます。

ただし、(!)MXレコードはサブドメイン用に設定されているため、そこでしかメールを受信できません。メインドメインへのメールを受信できるようにするには、Mailgunのコントロールパネルでメインドメインを追加します。 mail.example.comではなくexample.comではなく、このメインドメインのDNSコントロールパネルで適切な構成を作成します。DigitalOceanのexample.comのDNSの構成例(サブドメインではありません):

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.

Mailgunにはメールボックス機能がないことに注意してください。適切なルールセットがある場合、Mailgunは受信メールのみを転送できます。ほとんどのユーザーは、メインドメインのMXレコードをGmailなどの管理しやすいESPに委任します。 1つのドメインにはMXレコードのセットを1つしか含めることができないため、GmailまたはMailgunを選択する必要があります。

18
Anton Egorov

これにはmailgun-jsを使用する必要があります

  1. Npmからmailgun-jsを要求する

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

2.Mailgunのオプションを設定します。つまり、apiKeyとドメインです。

_var options = {
  apiKey: 'YOUR_API_KEY',
  domain: 'YOUR_DOMAIN'
};
_
  1. これらのオプションを使用してmailgunをインスタンス化します。

    var mailgun = new Mailgun(options);

  2. 必要なパラメータを設定してからメールを送信します。

    _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

Mailgunを使って間もないのですが、これまでに学んだことを手伝うことができます。

DNSレコードは、MailgunまたはGmailなどのサードパーティ用に設定できます。私は彼らが両方を使うとは思わない。それがどこに行くのか分からないので、それがルーティングに何をするかわかりません。

Mailgunサブドメインでは、mail.example.comメールアドレス[email protected]。鉱山は稼働していますが、そのようなメールアドレスは作成していません。私のメール形式はまだ[email protected]

受け取ったメールからこれを貼り付けて、提供された例と一致するように編集します。

ルートドメインexample.comのMXレコードを設定したようですが、Mailgunで使用しているドメインはmail.example.comです。これらを正しくルーティングするには、ホスト名をexample.comからmail.example.comに変更する必要があります。

Mailgunにはメールボックスがないため、Mailgunでメールを受信するには、ルート機能だけでなく、Mailgunを指すMXレコードを持つサブドメインを使用する必要があります。ルートを理解する良い方法は、洗練されたフィルタリングと転送メカニズムとしてです。ルートを使用すると、次のいずれかを実行できます。

  • 受信メールを別の環境に転送して保存します(メールアドレスやサーバーのエンドポイントなど)
  • メッセージを一時的に(最大3日間)保存し、Messages APIを使用して取得する
  • メッセージの処理を停止します(つまり、特定のメッセージを転送または保存する代わりにドロップします)
2
jp2code

DjangoのAnymailパッケージを使用してサブドメインからMailgunメールを送信しようとしている場合は、EmailMultiAlternativesオブジェクトを使用してメールを送信し、次のようにメール送信者ドメインを指定する必要があります。

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