2013-03-19 1 views
4

Я создал форму для связи с нами, и я прекрасно получаю письма в своем почтовом ящике gApps. Тем не менее, полученные сообщения показывают значение по умолчанию: от значения сайта. Я бы хотел, чтобы они отображались в почтовом ящике из формы электронной почты. Поэтому, когда я нажимаю «ответить», он принимает адрес пользователя в качестве адреса, на который нужно отправить электронное письмо.Rails 3.2, как изменить: от значения в почтовом отправителе, а не по умолчанию (GMail)

Я пробовал это, но он не работает. Любая идея почему?

notifications_mailer.rb

class NotificationsMailer < ActionMailer::Base 
    default to: "[email protected]" 

    def new_contact(message) 
     @message = message 
     mail(:subject => "[hiKultura.com] #{message.subject}", 
     :from => message.email) 
    end 
end 

ContactController

class ContactController < ApplicationController 

    def new 
    @message = Contactmessage.new 
    end 

    def create 
    @message = Contactmessage.new(params[:contactmessage]) 

    if @message.valid? 
     NotificationsMailer.new_contact(@message).deliver 
     redirect_to(root_path, :notice => "Message was successfully sent.") 
    else 
     flash.now.alert = "Please fill all fields." 
     render :new 
    end 
    end 

end 

UPDATE

Я последовал за подобные случаи, которые я нашел в SO относительно: reply_to и GMail. Но, по-прежнему показывает: на адрес электронной почты, когда я ударил ответ. Что мне не хватает ???

notifications_mailer.rb

class NotificationsMailer < ActionMailer::Base 

    default :from => '[email protected]' 

    def new_contact(message) 
     @message = message 
     mail(:reply_to => "[email protected]", 
     :subject => "[mydomain.com] #{message.subject}", 
     :to => "[email protected]" 
    ) 
    end 
end 
+0

Что возвращает message.email? –

+0

Как я могу это знать? Я предположил, что он должен работать, потому что контент «message.subject» добавляется в строку темы. –

+0

Адрес, куда вы его звоните: Что вы проходите? –

ответ

4

Большинство провайдеров SMTP (Gmail и т.д.) не позволит вам отправить по электронной почте с адреса, отличного от адреса, связанного с учетной записью, что вы входе в SMTP сервер с, что в вашем случае, вероятно, по умолчанию от адреса, настроенного в вашем приложении. Если вы думаете об этом, это имеет большой смысл для защиты/защиты от спама. Хотели бы вы, чтобы кто-нибудь мог отправить электронное письмо, в котором ваш адрес электронной почты указывался как адрес? Я уверен, что нет. Альтернативой является использование: reply_to. Когда вы получаете ответ в своей почтовой программе, он должен использовать это, если он присутствует.

mail(:subject => "[hiKultura.com] #{message.subject}", 
    :reply_to => message.email) 
+0

: reply_to не работает для меня ... –

+0

Я согласен с логикой. Однако мне не удается получить: reply_to work. Я обновил этот бит кода. Спасибо –

+0

Вы также можете просто использовать параметр 'from', как описано в документации API. Но тогда вы должны убедиться, что ваш SMTP-сервер настроен правильно, чтобы разрешить ретрансляцию, возможно, используя аутентифицированный SMTP. http://api.rubyonrails.org/classes/ActionMailer/Base.html#method-i-mail –

Смежные вопросы