简体   繁体   English

Action Mailer设置在Rails 4中不起作用

[英]Action mailer settings not working in rails 4

I am trying to send notification mail using Action mailer in rails 4 but it is not working properly. 我正在尝试在Rails 4中使用Action Mailer发送通知邮件,但无法正常工作。 After solving many error I am able to send the mail and no error shows in the console but the mail is not received. 解决了许多错误后,我能够发送邮件,但控制台中未显示任何错误,但未收到邮件。 This has always worked for me before but I dont know how it is not happening now. 以前,这一直对我有用,但我不知道现在怎么回事。 Here is my output in the console. 这是我在控制台中的输出。

AdminMailer#subscription_added: processed outbound mail in 202.7ms

Sent mail to receiver@gmail.com (9.8ms)
Date: Sat, 28 Nov 2015 21:25:52 +0530
To: receiver@gmail.com
Message-ID: <5659ce8829e54_2b0563310f2520dc@ubuntu.mail>
Subject: Subscription addded
Mime-Version: 1.0
Content-Type: text/html;
charset=UTF-8
Content-Transfer-Encoding: 7bit

<!--XRAY START 8 /home/yogesh/Desktop/new/munam/app/views/layouts/mailer.html.haml-->
<hmtl>
  <body>
    <!--XRAY START 7 /home/yogesh/Desktop/new/munam/app/views/admin_mailer/subscription_added.html.haml-->
name of receiver
Email receiver@gmail.com

<!--XRAY END 7-->
 </body>
</hmtl>

<!--XRAY END 8-->
Completed 302 Found in 320ms (ActiveRecord: 70.3ms)

Here is my code for it 这是我的代码

In my development.rb 在我的development.rb中

Rails.application.configure do
# Settings specified here will take precedence over those in config/application.rb.

# In the development environment your application's code is reloaded on
# every request. This slows down response time but is perfect for development
# since you don't have to restart the web server when you make code changes.
config.cache_classes = false

# Do not eager load code on boot.
config.eager_load = false

# Show full error reports and disable caching.
config.consider_all_requests_local       = true
config.action_controller.perform_caching = false

# Don't care if the mailer can't send.
config.action_mailer.raise_delivery_errors = false

# Print deprecation notices to the Rails logger.
config.active_support.deprecation = :log

# Raise an error on page load if there are pending migrations.
config.active_record.migration_error = :page_load

# Debug mode disables concatenation and preprocessing of assets.
# This option may cause significant delays in view rendering with a large
# number of complex assets.
config.assets.debug = true

# Adds additional error checking when serving assets at runtime.
# Checks for improperly declared sprockets dependencies.
# Raises helpful error messages.
config.assets.raise_runtime_errors = true

# Raises error for missing translations
# config.action_view.raise_on_missing_translations = true
config.action_mailer.default_url_options = { :host => "localhost:3000"  }

# Automatically inject JavaScript needed for LiveReload
# config.middleware.insert_after(ActionDispatch::Static, Rack::LiveReload)

config.action_mailer.delivery_method = :smtp
config.action_mailer.smtp_settings = {
  address:              'smtp.gmail.com',
  port:                 587,
  domain:               'localhost:3000',
  user_name:            'mymail@gmail.com',
  password:             'mypassword',
  authentication:       'plain',
  enable_starttls_auto: true  }
end

My code that triggers the mail 我的触发邮件的代码

AdminMailer.subscription_added(@subscription).deliver_now

My Admin mailer 我的管理员邮件

class AdminMailer < ApplicationMailer
def subscription_added(subscription)
  @subscription = subscription
   begin
    mail(:to => "sender@gmail.com", :subject => "Subscription addded")
   rescue Exception => e
  end
 end
end

I will really thankful if someone tells me where I am going wrong or what extra do I need to do. 如果有人告诉我我要去哪里错了,或者我还需要做什么,我将非常感谢。 Thanks a lot in advance. 非常感谢。

You're hiding any errors that may occur when trying to send the email, with this line: 您可以使用以下行隐藏尝试发送电子邮件时可能发生的任何错误:

config.action_mailer.raise_delivery_errors = false

Change it to true , restart your server, and you will get an error if you try to send mail and it fails. 将其更改为true ,然后重新启动服务器,如果您尝试发送邮件但失败了,将会收到错误消息。

In development, I'd recommend against using a real live mail server, though - I'd recommend using something like Mailcatcher ( http://mailcatcher.me/ ) 在开发中,我建议不要使用真实的实时邮件服务器-我建议使用类似Mailcatcher( http://mailcatcher.me/ )的东西

Try to raise run-time errors using the following code in development.rb file. 尝试使用development.rb文件中的以下代码引发运行时错误。

config.action_mailer.perform_deliveries = true
config.action_mailer.raise_delivery_errors = true

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM