我死路一条!我正在尝试制作一个应用程序来接收Hotmail上的电子邮件!我创建了一个方法,我收到一个错误,没有收到电子邮件..
在我的方法中:
class Recivemail < ActiveRecord::Base
attr_accessible :content, :from, :subject
def sendmail(content,from,subject)
subject = 'subject'
recipients = "linkinpark_8884@hotmail.com"
from = 'from'
sent_on = Time.now
end
end
在config&gt;环境&gt; development.rb
中config.action_mailer.delivery_method = :smtp
config.action_mailer.smtp_settings ={
:enable_starttls_auto => true,
:address => 'smtp.hotmail.com',
:port => 587,
:authentication => :plain,
:domain => 'localhost:3000',
:user_name => 'linkinpark_8884@hotmail.com',
:password => 'mypass'
}
在视图&gt; recivemails&gt; show
中<%=@recivemail.sendmail(@recivemail.from,@recivemail.subject,@recivemail.content)%>
一切似乎都正常工作,除了我没有收到任何想法的电子邮件?
也在cmd(我在Windows中)路径C:/ Sites / recivemail路径我运行了gem install activemailer
答案 0 :(得分:1)
我的sendmail方法中没有看到任何实际发送邮件的内容。您所做的就是设置4个实例变量。我不认为你真的试图发送邮件。我也没有看到你将content参数设置为方法中的变量的位置。
我还认为您的邮件程序对象应该来自ActionMailer :: Base
class ReceiveMail < ActionMailer::Base
default :return_path => 'system@example.com'
def sendmail(content,from,subject)
mail(:to => "linkinpark_8884@hotmail.com",
:bcc => ["bcc@example.com", "Order Watcher <watcher@example.com>"],
:subject => subject,
:content => content) # use whatever mail headers are appropriate
end
end
然后在您的控制器中,而不是您的模型,在您在控制器操作中创建的ActionMailer :: Base对象模型上调用.deliver
,而不是在活动记录模型中。
控制器可能看起来像这样
class MailController < ApplicationController
def mails
ReceiveMail.sendmails(params[])
@message = ReceiveMail(params[content], params[subject], params[from]) #pass params if form POST
@message.deliver
end
end
您可能还需要定义:
ActionMailer::Base.template_root = "mailer/templates"
# mailer will look for rhtml templates in that path
# example: "mailer/templates/my_mailer/signup_mail.rhtml"
在config / environments / development.rb / production.rb
中答案 1 :(得分:0)