使用带Heroku和CNAME的电子邮件

时间:2012-07-27 18:14:53

标签: heroku cname

我正在HEROKU托管应用上设置MX记录并遇到问题。

我有两个CNAME的设置:

@ myapp.herokuapp.com
www myapp.herokuapp.com

网站在上面设置正常工作。我现在正尝试通过添加Google Apps MX记录来添加电子邮件支持。

@ ASPMX.L.GOOGLE.COM.  MX 10 1800  

- 以及其他四个MX后退 -

Google Apps称它无法读取MX记录。这是因为它们与@CNAME记录冲突吗?如果是这样,我应该删除它并使用“Naked Domain”方法(改为设置三个A记录)。 Heroku让人觉得这种方法对于“@”非WWW的CNAME来说是非常气馁的。

感谢您的帮助!

4 个答案:

答案 0 :(得分:9)

我发现最好的方法是使用Google Apps“Naked Domain”301重定向功能,如https://support.google.com/a/answer/2518373?hl=en

中所述

1)转到管理控制台 - 域 - 更改裸重定向

2)重定向到WWW.your_domain.com

3)您将在DNS中设置4个A-Records,将your_domain.com指向

  • 216.239.32.21
  • 216.239.34.21
  • 216.239.36.21
  • 216.239.38.21

现在,当某人指向your_domain.com时,他们会将301重定向到WWW.your_domain.com 这个,顺便说一下gooogle.com的行为方式(301重定向到www.google.com)

HT:http://smallchou.com/post/41388058201/heroku-and-root-aka-apex-or-naked-domains

答案 1 :(得分:3)

显然他们发生冲突。来自Heroku:

Hi, you can't have CNAME entries on the zone apex. 
You'll need to do the A records setup, or use a DNS provider that 
supports ALIAS/ANAME records (DNSimple, DNS Made Easy, Route 53).

删除@ CNAME并将其替换为A记录似乎有效 - 几分钟后Google就会收到我的MX记录。

最终设置是指向myapp.herokuapp.com的单个WWW CNAME。和三条A记录,每条记录都指向一个Heroku列出的IP。

答案 2 :(得分:1)

我只是在挣扎着这样的事情。当我切换到Heroku时,我添加了CNAME将我的根域(my_domain.com)指向heroku并且该链接我猜想转发所有内容并杀死你的MX记录以获取电子邮件,所以我解决它的方式是指向我的www子域通过cname记录(www.my_domain.com)到heroku,然后我添加了一个将我的根域(my_domain.com)转发到我的子域(www.my_domain.com)的链接。然后我的MX记录再次工作,但我不得不等待几个小时才开始工作(幸运的是我放弃了,然后上床睡觉,然后在早上意识到它已经工作了)。要将根指向www子域,我的域名提供商有一个名为指针的设置,我选择的选项是“标准”,“URL”和“www.my_domain.com”

然后为了让SSL工作,我必须在后端网络服务器代码中添加重定向以将http重定向到https,所以我想现在如果你输入my_domain.com它会重定向到www.my_domain.com,然后重定向到https。 my_domain.com,有点疯狂,但它的速度非常快,所以我觉得它很好。

答案 3 :(得分:0)

如果您的DNS提供商支持ALIAS(Namecheap现在支持),则可以轻松获取电子邮件(MX,TXT记录)并在heroku中使用裸URL(example.com,而不是www.example.com)。

选择ALIAS,而不是选择CNAME记录类型。高级DNS行的Namecheap示例如下:

(Type)            (Host)           (Value)                                (TTL)
ALIAS Record      @                heroku-weird-dns-target.herokudns.com  5 min

ALIAS将与TXT和MX一起播放。