2010-07-16 94 views
34

我试图从我的生产服务器上的控制台发出一些邮件,他们不会出去。我无法弄清楚为什么。我只用sendmail的标准电子邮件设置。当我打电话的Mailer.deliver_方法我得到这个回:从rails控制台发送邮件

#<TMail::Mail port=#<TMail::StringPort:id=0x3fe1c205dbcc> bodyport=#<TMail::StringPort:id=0x3fe1c2059e00>> 

编辑:添加一些更多的信息:

因此,举例来说,我在我的控制器时,新用户注册这一行,发送给他们一个“欢迎”电子邮件:

Mailer.deliver_signup(@user, request.host_with_port, params[:user][:password]) 

这工作正常。我想我应该能够从控制台做同样的事情,如

user = User.find(1) 
Mailer.deliver_signup(user, "mydomainname.com", "password") 

当我这样做,我得到的Tmail :: StringPort对象回来,但邮件似乎得不到送出(我试图发邮件给我自己来测试这个)。

我在Ubuntu的服务器,以防万一。谢谢 - 最大

+0

你尝试电子邮件发送到互联网? – txwikinger 2010-07-16 17:01:10

+0

这对于交付方法的返回值来说非常标准,您的sendmail或目标电子邮件可能有问题。 – Karl 2010-07-16 21:49:31

回答

16

对于首先从Rails控制台发送电子邮件,我们必须在控制台中执行此设置以进行动作邮件设置。

ActionMailer::Base.delivery_method = :smtp 
ActionMailer::Base.smtp_settings = { 
    address: 'smtp.gmail.com', 
    port: 587, 
    domain: 'gmail.com', 
    authentication: 'plain', 
    enable_starttls_auto: true, 
    user_name: '[email protected]', 
    password: 'yourpassword' 
} 

之后如果我们执行电子邮件发送代码,它会发送电子邮件。

UserMailer.activation_instructions(@user).deliver_now 
0

我不是100%,如果我明白你想要做什么。

如果您尝试将电子邮件发送到Internet,则必须配置您的sendmail以将这些电子邮件转发到正确的电子邮件服务器。根据您使用的Ubuntu版本,您可以重新配置程序包来执行此操作。

你也可能会想如果你想使用procmail而不是sendmail。

您可以重新配置与

dpkg-reconfigure sendmail 
使用的procmail

,而不是如果您使用的包装电子邮件配置。配置对话框提供了一些选项,您可以将其配置为将所有邮件转发到相应的电子邮件服务器。但是,您需要考虑是否需要验证,或者该服务器是否只接受来自服务器的电子邮件。

+0

嗨 - 对不起,我应该提供一些更多的细节。我编辑了我原来的帖子。 – 2010-07-19 08:35:06

45

我今天早上遇到了类似的问题在一个Rails应用程序3,我叫:

UserMailer.activation_instructions(@user) 

这给我的数据,但没有发送电子邮件了。发送,我打电话:

UserMailer.activation_instructions(@user).deliver 

这没有把戏。希望这可能也适合你!

+3

似乎不适合我,你是否必须显式设置rails env,以便它能够获得正确的actiomailer环境配置? – Rubytastic 2012-03-04 22:36:58

60

更快的版本:

ActionMailer::Base.mail(
    from: "[email protected]", 
    to: "[email protected]", 
    subject: "Test", 
    body: "Test" 
).deliver 
+2

这比较好,尽管'deliver'已被弃用,我们鼓励使用'deliver_now'代替。 – iamse7en 2015-10-29 16:14:03

+0

但是我将如何使用现有模板? 就像一个UserMailer.account_activation电子邮件.. – sambehera 2016-04-14 03:16:28