Mailgunは、サブドメインのDNS(TXT、MX、..)レコードを作成することをお勧めしますが、ルートドメインとの送受信は後の設定で可能であると述べています。レジストラとMailgunでmail.example.comに必要なすべての手順を作成しました(ドメインの追加、ルートの設定など)。これで、設定済みの[email protected]にメールを送受信できます。
[email protected]で送受信できるようにするには、何を変更する必要がありますか?レジストラ、メールガン、およびGmailのSMTP設定(GmailからMailgun経由で送信する場合)で必要な変更は何ですか?
どうもありがとうございました!
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を選択する必要があります。
これにはmailgun-jsを使用する必要があります
Npmからmailgun-jsを要求する
var Mailgun = require('mailgun-js');
2.Mailgunのオプションを設定します。つまり、apiKeyとドメインです。
_var options = {
apiKey: 'YOUR_API_KEY',
domain: 'YOUR_DOMAIN'
};
_
これらのオプションを使用してmailgunをインスタンス化します。
var mailgun = new Mailgun(options);
必要なパラメータを設定してからメールを送信します。
_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() {
});
_
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を使用して取得する
- メッセージの処理を停止します(つまり、特定のメッセージを転送または保存する代わりにドロップします)
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()