2013-05-31 8 views
5

Sto inviando email usando l'azione mailer nella mia app per rails. Ma consente solo un mittente predefinito. Questa è la mia classe UserMailer:Rails: modifica il mittente predefinito nel mailer di azione

class UserMailer < ActionMailer::Base 
default :from => "[email protected]" 
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 

ho provato questo:

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

Ma ancora sta inviando e-mail da "[email protected]"

c'è un modo per cambiare mittente ogni metodo scritto nella classe UserMailer? Dovrei cambiare da un'altra parte?

in config/ambienti/development.rb e config/ambienti/production.rb ho questo:

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

credo, non dovrebbe cambiare nulla qui.

risposta

2

Penso che si desidera inviare la posta con tre diversi messaggi di posta elettronica del per-ogni azione. Perché usi Gmail, hai bisogno di Sending mail from a different address.

Nessun singolo fornitore è ottimale per tutti e tre i tipi di e-mail; probabilmente utilizzerà diversi fornitori.

Per "email aziendale", ovvero invio di singole e-mail ai clienti o ai soci commerciali , probabilmente utilizzerai Gmail o Google Apps for Business. Per un singolo indirizzo, è possibile impostare un singolo account Gmail da ricevere e send email from a different address. Più probabilmente, vorrai diversi indirizzi e-mail per la tua posta aziendale. Per questo, utilizza Google Apps for Business.

Send Email with Rails

2

ho scoperto che questo non può essere fatto utilizzando SMTP. È necessario utilizzare SES per Amazon che consente il supporto multi-mittente.