2013-05-31 8 views
5

Ich sende E-Mail mit Aktion Mailer in meiner Rails App. Aber es erlaubt nur einen Standard-Absender. Das ist meine UserMailer Klasse:Rails: Standard Absender in Aktion Mailer

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 

Ich habe versucht, diese:

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 

Aber noch ist es E-Mail Senden von „[email protected]

Gibt es eine Möglichkeit Absender zu ändern für jede Methode in UserMailer-Klasse geschrieben? Soll ich irgendwo anders wechseln?

In config/Umgebungen/development.rb und config/Umgebungen/production.rb ich habe dies:

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 
} 

Ich denke, ich sollte hier nichts ändern.

Antwort

5

Sie können es als Parameter an die Methode übergeben mail:

def new_mail 
    mail from: "[email protected]", to: "[email protected]" 
end 
+0

Hey, ich möchte E-Mails von verschiedenen Benutzern senden. Ich habe meine Frage aktualisiert. Kannst du dabei helfen? – user2206724

+1

Sie müssen dann mehrere E-Mails senden :) – e3matheus

2

Ich glaube, Sie Mail mit drei verschiedenen E-Mails von der foreach-Aktion senden möchten. Da Sie Google Mail verwenden, benötigen Sie Sending mail from a different address.

Kein einziger Anbieter ist optimal für alle drei E-Mail-Typen; Sie wahrscheinlich wird mehrere Anbieter verwenden.

Für "Unternehmens-E-Mail", dh das Senden einzelner E-Mails an Kunden oder Geschäftspartner, verwenden Sie wahrscheinlich Google Mail oder Google Apps for Business. Für eine einzelne Adresse können Sie ein einzelnes Google Mail-Konto zum Empfangen und send email from a different address einrichten. Eher wahrscheinlich, Sie mehrere E-Mail-Adressen für Ihre Firma Mail möchten. Verwenden Sie dazu Google Apps for Business, .

Send Email with Rails

2

Ich fand, dass dies nicht mit smtp getan werden kann. Brauchen Sie amazon SES, die Multi-Sender-Unterstützung ermöglicht.

Verwandte Themen