新手问题 Rails Mailer 問題求救

xdxie · 2013年02月18日 · 最后由 lgn21st 回复于 2013年02月19日 · 3420 次阅读

我使用 Rails 的 Mailer 來做寄信服務

使用 google smtp 設定如下

config.action_mailer.delivery_method = :smtp
config.action_mailer.smtp_settings = {
:address              => "smtp.gmail.com",
:port                 => 587,
:domain               => "domain.cc",
:user_name            => "[email protected]",
:password             => "foo",
:authentication       => "plain",
:enable_starttls_auto => true
 }

當然 domain 是我自己的

我做學員驗證,寄到 [email protected] 的信箱 正常情況下每個學員都收的到

問題是當學員本身信箱有設自動轉寄 (return path) 例如轉到他們自己的 gmail 這些有設自動轉寄到其他信箱的學生會收不到信件

請問這是哪邊出了問題!?

建议用 mail 这个 gem,简单些。

你可以先手动发送一封邮件到 [email protected] 邮箱,看看是否会成功自动转发。

邮件成功发送到 edu.tw 邮箱了,Rails Mailer 的工作也就做完了 - -||

虽然猜不到为什么自动转寄为什么收不到,我个人建议是尽量不要在 Rails 中用 Google 的 Gmail SMTP 服务,尽量选择 http://www.mailgun.com/ 或者 https://postmarkapp.com/ 这样的专业服务。

user_name 是用 gmail 帐号吧。domain 我没有设置也一样能发。gmail 有两步验证,另外一个是手机验证,如果是两步验证,要改变成一步验证。

google 的 smtp 有測試過了,有設轉寄的會收不到,沒設轉寄的會收到 有測試過了 smtp 改用學校的,不論有沒有設轉寄的學員都可以正常收到,所以暫時還是改用學校的 smtp 吧

謝謝大家的解答,我會試試看大大們講的其他方法

To:ruby_sky 我用的是 google app 所以可以用個人 domain

#2 楼 @wppurking 手動用 google 信箱寄到有設定轉寄的學員信箱,可以正常收到可是不知道為什麼 Rails 遇到這種 case 就不行

@xdxie 然后你比较比较通过手动发送的邮件,与通过 Rails Mailer 发送的邮件他们会有什么差别吗?Gmail 里面有一个 Show original 可以看到发送邮件的所有信息。外面看不出来,就只能看具体参数信息了。

#7 楼 @wppurking 這個方法有想過,問題就是有設轉寄的用 Rails Mailer 發送收不到,所以也沒辦法比較 XD,單純看一個 raw data 也看不出一個所以然

@xdxie 额,好吧。其实我会 diff 一下两份 raw data , 看看会不会有差别。突然我想到了 Gmail 强大的 Spam 过滤。

让学员到 spam folder 去找邮件。没有理由没有转发。

用學校 smtp 來寄,設有轉寄的學員 (設 gmail) 有些確實會在垃圾桶找到信件 用 google smtp 設有轉寄學員連在垃圾郵件也找不到,依然只有沒設轉寄的學員收的到,確實是一個奇怪的問題

一樣的設定現在可以了! 不好意思害大家苦思半天..雖然原因是什麼還是無解 Orz

#3 楼 @lgn21st

还有其他公司提供的这种服务吗

#13 楼 @D90 国内有,好像是腾讯或者网易都开始涉足这个市场了,因为非常重视所以作的很靠谱,我上周听在 zhihu 的一个哥们说他们已经部分邮件营销服务转移到国内了,你可以去了解下。

需要 登录 后方可回复, 如果你还没有账号请 注册新账号