5

Railsアプリでアクションメーラーを使用してメールを送信しています。ただし、デフォルトの送信者は 1 つしか許可されません。これは私の UserMailer クラスです:

class UserMailer < ActionMailer::Base
 default :from => "example@example.com"
 def welcome_email(user, order)
  @user = user
  @order = order
  mail(:to => user.email, :subject => "Your Order")
 end
 def signup_email(user)
  @user = user
  mail(:to => user.email, :subject => "Thank you.")
 end
 def invite_confirm(curuser,usemail,post)
  @greeting = "Hi"
  @user = curuser
  @post = post
  mail(:to => user.email, :subject => "Hello")
 end
end

私はこれを試しました:

class UserMailer < ActionMailer::Base
 def welcome_email(user, order)
@user = user
    @order = order
    mail(:to => user.email, :subject => "Your Order", :from => "abc@xyz.com")
 end
 def signup_email(user)
   @user = user
   mail(:to => user.email, :subject => "Thank you.", :from => "qwe@asd.com")
 end
 def invite_confirm(curuser,usemail,post)
  @greeting = "Hi"
  @user = curuser
  @post = post
  mail(:to => user.email, :subject => "Hello", :from => "zyx@asd.com")
 end
end

しかし、それでも「example@example.com」からメールを送信しています

UserMailer クラスに記述されたメソッドごとに送信者を変更する方法はありますか? 他の場所に変更する必要がありますか?

config/environments/development.rb および config/environments/production.rb には、次のものがあります。

 config.action_mailer.smtp_settings = {
  :address => "smtp.gmail.com",
  :port => "587",
  :domain => "gmail.com",
  :authentication => "plain",
  :user_name => "example@example.com",
  :password => "example",
  :enable_starttls_auto => true 
 }

ここでは何も変更しないでください。

4

4 に答える 4

2

for-eachアクションの3つの異なるメールでメールを送信したいと思います。Gmail を使用しているため、別のアドレスからメールを送信する必要があります。

3 種類の電子メールすべてに最適な単一のベンダーはありません。おそらく複数のベンダーを使用するでしょう。

「会社のメール」、つまり顧客やビジネス関係者に個別のメールを送信する場合は、おそらく Gmail またはGoogle Apps for Business を使用します。1 つのアドレスに対して、1 つの Gmail アカウントを設定して、別のアドレスからメールを送受信できます。多くの場合、会社のメール用に複数のメール アドレスが必要になります。そのためには、Google Apps for Business を使用してください。

Railsでメールを送る

于 2013-05-31T17:05:13.013 に答える