Tag: 电子邮件

如何在发送之前修改actionmailer email html_part

我已经掌握了即将发送电子邮件的所有内容,但我需要修改所有链接以包含Google Analytics属性。 问题是,如果我尝试读取/写入电子邮件的html_part.body,整个html字符串会以某种方式编码并且不能正确显示电子邮件(即变为<html> )。 我在记录器中记录了html_part.body.raw_source并显示为正确的未编码HTML,只有在实际发送电子邮件时才会发生编码。 EBlast.rb(ActionMailer) def main(m, args={}) # Parse content attachment references (they don’t use helpers like the layout does) # and modify HTML in other ways m.prep_for_email self @email = m # Needed for helper methods in view mail_args = { :to => @user.email, :subject => m.subject, :template_path => ‘e_blast’, :template_name => […]

使用MailCatcher和Devisegem的Rails 4

我有一个与gemDevise的应用程序。 我需要通过电子邮件确认注册。 在config / environment.rb中我添加了这个 ActionMailer::Base.delivery_method = :smtp ActionMailer::Base.smtp_settings = { :address => “smtp.gmail.com”, :port => 587, :domain => “gmail.com”, :authentication => ‘plain’, :user_name => “myappname@gmail.com”, :password => “mypassword” } 在config / environment / development.rb中添加: config.action_mailer.default_url_options = { :host => ‘localhost:3000’ } config.action_mailer.delivery_method = :smtp config.action_mailer.smtp_settings = { :address => “127.0.0.1”, :port => 1025 } […]

Rails从一个邮件程序function发送2个不同的电子邮件

我有必要这样做,因为这对我来说似乎合乎逻辑: def notification(vehicle) @vehicle = vehicle mail(:to => @vehicle.owner.email_address, :template_name => “n_o”) mail(:to => @vehicle.booker.email_address, :template_name => “n_b”) 结束 问题是:我只收到最后一封电子邮件。 因此,在上面的示例中,只有预订者才会收到电子邮件,并且没有任何内容发送给所有者。 问题是什么 ? 怎么解决? 我应该创建两个单独的邮件function,例如notification_owner(vehicle)和notification_booker(vehicle),还是有一个更简单的解决方案? 谢谢!

将所有外发电子邮件重定向到单个地址以进行测试

在Ruby on Rails中,我处于这样一种情况:我希望我的应用程序(在特定的测试环境中)拦截应用程序生成的所有外发电子邮件,而是将它们发送到不同的测试地址(也可能修改正文)说“最初发送到:……”)。 我看到ActionMailer有一些钩子来观察或拦截邮件,但如果有更简单的方法,我不想自己动手解决。 建议?

在rails app中手动发送特定页面的电子邮件

我有一个基本的应用程序,每季度为客户收集储蓄数据。 有一个视图显示每个客户端的数据与其他带有图表和图形的客户端数据的比较。 我正在寻找一种简单的方法来实现一个按钮(或其他东西),允许我根据自己的判断手动将该视图发送到客户端。 我只找到了如何在注册或确认类型的电子邮件中发送电子邮件的教程。

电子邮件中的Button_to未发布

请参阅此问题的演变更新 在我的网站上,每个用户都有一个仪表板,他/她可以点击链接以接受或拒绝请求。 根据所点击的内容,然后使用相关状态修补请求记录。 为了方便用户,我试图将这个仪表板嵌入到他们的电子邮件中,以便他们永远不必直接访问该网站; 想一个看起来像这样的电子邮件: 嗨,您好, 您有以下请求,请单击请求旁边的“接受/拒绝” 请求A:接受,拒绝 请求B:接受,拒绝 …. 到目前为止,实现这项工作的唯一方法是为电子邮件中使用的链接提供一组并行的GET路由,而不是实际网站仪表板中使用的链接的PATCH路由。 想知道是否有更好的方法吗? 路线 patch ‘inventories/:id/accept’, to: ‘inventories#accept’, as: ‘lender_accept’ patch ‘inventories/:id/decline’, to: ‘inventories#decline’, as: ‘lender_decline’ get ‘inventories/:id/accept_email’, to: ‘inventories#accept’, as: ‘lender_accept_email’ get ‘inventories/:id/decline_email’, to: ‘inventories#decline’, as: ‘lender_decline_email’ 链接电子邮件 链接在网站仪表板上 UPDATE 好的尝试使用button_to生成一个POST表单,以避免使用GET进行POST,就像上面的“补丁”解决方案一样,仍然无法正常工作…… 路线: post ‘inventories/:id/accept’, to: ‘inventories#accept’, as: ‘lender_accept’ post ‘inventories/:id/decline’, to: ‘inventories#decline’, as: ‘lender_decline’ 梅勒观点: […]

在Rails中,为什么我的邮件主体只在我的测试中空了?

我有一个actionmailer类和相关的开销,它完美地工作。 但是,在我的unit testing(rails default minitest)中,电子邮件正文是空的。 这是为什么? 我的邮件课: class TermsMailer < ApplicationMailer default from: "info@domain.com" def notice_email(user,filename) @user = user @file = filename mail(to: "info@domain.com", subject: 'Data downloaded') end end 我的测试: require ‘test_helper’ class TermsMailerTest < ActionMailer::TestCase test "notice" do email = TermsMailer.notice_email(users(:me),'file.ext').deliver_now assert_not ActionMailer::Base.deliveries.empty? assert_equal ['info@domain.com'], email.from assert_equal ['info@domain.com'], email.to assert_equal 'Data downloaded', email.subject assert_equal […]

Gmail未检测到回复字段

我的FeedbackMailer中有以下设置。 def notification(feedback) from “admin@gmail.com” subject “Some feedback” recipients “admin@gmail.com” reply_to feedback.creator.email body({ :feedback => feedback }) content_type “text/html” end 我使用admin@gmail.com帐户发送此应用程序的电子邮件。 电子邮件发送完美。 当我在收到电子邮件后查看电子邮件的详细信息时,我会看到以下内容: from “admin@gmail.com” reply-to “user_email@foo.com” to “admin@gmail.com” 现在,当我按下gmail界面中的reply按钮时, to字段现在应该具有“user_email@foo.com”,但它具有“admin@gmail.com”。 我做错了什么或gmail是?

如何使用在后台发送电子邮件的Rails实现邮件系统

我想用Ruby on Rails实现一个可靠的邮件系统,它在后台发送电子邮件,因为发送邮件有时需要10秒或更长时间,所以我不希望用户等待。 我想到的一些想法: 写入数据库a中的表有一个后台进程可以检查并发送电子邮件(关注:对数据库的潜在多次读/写会减慢我的应用程序) 消息队列后台进程/ Rake任务(关注:如果服务器崩溃排队的邮件将丢失,如果许多电子邮件也会占用大量内存) 我想知道你是否知道一个在可靠性和性能之间取得平衡的好解决方案。

使用Ruby on Rails获取电子邮件

我需要使用RoR从我的Gmail帐户中获取电子邮件。 require ‘net/pop’ Net::POP3.start(‘pop.gmail.com’, 995, username, password) do |pop| if pop.mails.empty? puts ‘No mail.’ else #pop.each_mail do |mail| #p mail.header #p mail.pop puts “Mails present” #end end end 我收到超时错误。 usr/lib/ruby/1.8/timeout.rb:60:in `new’: execution expired (Timeout::Error) from /usr/lib/ruby/1.8/net/protocol.rb:206:in `old_open’ from /usr/lib/ruby/1.8/net/protocol.rb:206:in `old_open’ from /usr/lib/ruby/1.8/net/pop.rb:438:in `do_start’ from /usr/lib/ruby/1.8/net/pop.rb:432:in `start’ from script/mail.rb:4 我该如何解决这个问题?