Mailgun建议为子域创建DNS(TXT,MX,..)记录,但是稍后配置可以通过根域发送和接收状态。我在我的注册商和Mailgun(添加域名,设置路由等)中为mail.example.com创建了所有必要的步骤。 我现在可以收到并发送电子邮件到配置的example@mail.example.com。
我现在需要更改哪些内容才能在example@example.com上发送和接收? 注册商,邮件枪和gmail的smtp设置(通过mailgun从gmail发送)有哪些必要的更改?
非常感谢!
答案 0 :(得分:16)
如果为子域配置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: 'helloworld@example.com',
to: 'recipient@domain.com',
subject: 'Hey you, awesome!',
text: 'Mailgun rocks, pow pow!'
}, someCallback);
或者您可以阅读有关通过API http://codepen.io/lukemeaden/pen/mPGreY发送的其他方法。无论如何,即使您的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没有邮箱功能,如果您有适当的规则集,它只能转发传入的电子邮件。大多数人将其主域名的MX记录委托给更易管理的ESP,如Gmail。 您只能拥有一组域的MX记录,因此您必须选择Gmail或Mailgun。
答案 1 :(得分:3)
你需要使用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() {
});
答案 2 :(得分:2)
我只是在短时间内使用Mailgun,但我可以帮助我到目前为止学到的东西。
您可以为Mailgun或Gmail等第三方设置DNS记录。我不认为他们会同时使用两者。我不确定这对路由会有什么影响,因为它不知道该去哪里。
对于您的Mailgun子域,您使用mail.example.com
电子邮件地址example1@mail.example.com
。我正在运行,但我根本没有创建这样的电子邮件地址。我的电子邮件格式仍为example1@example.com
。
我将从收到的电子邮件中粘贴此内容,然后根据您提供的示例进行编辑:
您似乎已为根域example.com设置了MX记录,但您使用Mailgun的域名是mail.example.com。您需要将主机名从example.com更改为mail.example.com,以便正确路由。
由于Mailgun没有邮箱,因此使用Mailgun接收电子邮件需要使用包含指向Mailgun的MX记录的子域以及使用我们的路由功能。理解路由的一种好方法是作为一种复杂的过滤和转发机制。使用路线,您可以:
- 将传入的电子邮件转发到其他环境进行存储(例如服务器上的电子邮件地址或端点)
- 暂时存储邮件(最多3天)并使用Messages API
检索邮件- 停止处理邮件(即丢弃某些邮件而不是转发或存储邮件)
答案 3 :(得分:0)
如果您尝试使用Django的Anymail程序包从子域发送Mailgun电子邮件,则需要使用EmailMultiAlternatives对象发送电子邮件并指定电子邮件发件人域,如下所示:
from django.core.mail import EmailMultiAlternatives
msg = EmailMultiAlternatives("Subject", "text body",
"contact@example.com", ["to@somedomain.com"])
msg.esp_extra = {"sender_domain": "mg.example.com"}
msg.send()