Tag: ruby on rails动作管理器

Rails 3:Hotmail / Live Hosted Email的SMTP设置

我在设置我的网络应用程序以使用Windows Live Hosted电子邮件而不是普通的Google Apps电子邮件时遇到问题。 这是因为谷歌正在收取此类服务的费用。 我输入了正确的config.action_mailer.smtp_settings,但由于某种原因,我无法收到正确发送的电子邮件通知。 我的配置如下,如果我将配置与另一个Google Apps配置设置电子邮件交换,它就可以正常运行。 我错过了什么吗? config.action_mailer.smtp_settings = { :enable_starttls_auto => true, :address => “smtp.live.com”, :port => “587”, :domain => “mail.live.com”, :user_name => “###########.net”, :password => “###########”, :authentication => :plain } 这是我收到的错误。 getaddrinfo:提供nodename或servname,或者不知道

将电子邮件表单附加到控制器

我想将以下链接更改为一个表单,将表单的params发布到我的控制器以发送电子邮件…当前链接工作并发送电子邮件… :put %> 在我的控制器中,我有: def contact Contact.contact_form.deliver end 我的梅勒: class Contact “Registered”) end end 在我的路线我有: resources :pages do put :contact, :on => :collection end 我意识到我需要在邮件程序中创建一个正文 – 但我不知道如何创建一个表单来执行此操作并将其全部传递。 我确实考虑过创建一个模型来做到这一点,但是我认为从一个表单中发送一封电子邮件的整个模型会轻微过度杀戮?

如何根据请求启用/禁用ActionMailer

我需要根据用户请求禁用/启用ActionMailer。 例如,如果用户选择禁用电子邮件,则在打开电子邮件之前不会发送任何电子邮件。 如何在不向模型回调添加任何条件的情况下执行此操作?

Actionmailer实例变量问题Ruby on Rails

我有一个电子邮件调度程序设置,可以向所有用户发送包含该网站更新的每日电子邮件, 但是,当我尝试发送电子邮件时,所有变量都返回为零,我假设因为没有明确定义。 即没有人通过电子邮件提交表单,点击提交并触发电子邮件,这只是每天向所有用户发送的电子邮件,为了简单起见,我们会说应该包含接收用户的电子邮件地址。 在此先感谢您的帮助! def newideas_email(user) @user = user mail(:to => user, :subject => “Here are the latest ideas from your team”) end 这是调度程序任务: scheduler.every(“30m”) do Account.all.each do |account| account.users.each do |user| Newideas.newideas_email(user.email).deliver end end end 这是实际的电子邮件代码: 再次感谢!

Rails 3:使用附件发送邮件 – 首次发送后损坏的文件

我想实现一个真正的简化通讯。 因此,我可以选择我想要的收件人。 对于那个时事通讯,我可以附上一个文件。 这适用于第一封邮件。 所有下一封邮件都有损坏的附件(1个字节大小)。 的ActionMailer: def send_newsletter(recipient,subject,content,file) @content = content if file attachments[file.original_filename] = { :content=> file.read, :mime_type=> file.content_type } end mail(:to => recipient, :template_name => “deliver_newsletter”, :subject => subject).deliver! end ApplicationController中: def create @customers = Customer.where(“CHAR_LENGTH(email) > 0”) @recipients = params[:sent_to] @subject = params[:subject] @content = params[:content].html_safe @file = params[:file] if @recipients @recipients.each […]

如何在ActionMailer的after_actionfilter中获取操作的名称

在下面的课程中,如何在after_action回调add_mandril_headers旁边获取当前操作名称(即email_confirmation , password_reset )? class UserMailer < ActionMailer::Base after_action :add_mandril_headers def email_confirmation(user) mail(..) end def password_reset(user) mail(..) end private # how to get the action name? def add_mandrill_headers headers['X-MC-Tags'] = [mailer_name, action_name].join('_'); end end

如何在Ruby on Rails中使用带有邮件程序的实例变量?

我在邮件程序的模型中创建了一个实例变量(@user),并希望在视图中访问它? 但它给了我一个错误(@user = nil)。 将变量传递给视图(电子邮件正文)的最佳方法是什么? 谢谢,奇拉格

我可以使用相同的ActionMailer从不同的地址发送电子邮件吗?

我正在使用ActionMailer来实现我的Rails 2.3.9应用程序。 当我发送电子邮件时使用: deliver_user_invite 配置: def user_invite(subject, content) subject subject from “User Invite ” recipients “invites@mydomain.com” sent_on Time.now content_type “text/html” body :content => content end 使用SMTP配置 config.action_mailer.smtp_settings = { :enable_starttls_auto => true, :address => ‘smtp.gmail.com’, :port => 587, :domain => ‘mydomain.com’, :authentication => :plain, :user_name => ‘user@mydomain.com’, :password => ‘password’ } 但是,在发送电子邮件时,发件人电子邮件显示为user@mydomain.com而不是invite@mydomain.com。 我可以为不同的电子邮件地址配置不同的SMTP吗? 或者有没有办法从ActionMailer配置设置发件人电子邮件地址?

ActionMailer和开发模式,它可以写入文件或什么?

我想在本地测试我的注册过程(开发模式),我如何测试电子邮件将如何发送和呈现等? 我不是指unit testing或集成测试,而只是在开发我的应用程序并进入注册页面等时。我希望它发送电子邮件但发送到不使用smtp的文件。 这可能吗? 我有什么选择?

延迟工作和行动邮件

我在使用ActionMailer实现延迟作业时遇到问题:在延迟执行作业之前: class NotificationsMailer “noreply@mycompany.com” default :to => “info@mycompany.com” def new_message(message) @message = message mail(:subject => “[Company Notification] #{message.subject}”) end end 并使用此行调用它(它工作得非常好): NotificationsMailer.new_message(@message).deliver 在延迟工作实施后,我所做的就是将交付线更改为: NotificationsMailer.delay.new_message(@message) 另外,我使用了启动作业队列 rake jobs:work 我可以看到数据库中的对象,如果作业已关闭,我可以看到它们在我启动工作后弹出但没有任何反应(没有发送电子邮件)。 更新 – 其他延迟任务(与邮件无关)工作正常。 任何人都可以帮助新手吗? 提前致谢!!