2013-11-16 5 views
3

Я пишу скрипт ruby ​​для отправки электронной почты с использованием «почтового» драгоценного камня.Отправитель электронной почты переопределяется параметрами smtp user_name

и мои настройки SMTP на моей локальной машине:

mailer_options: 
    address: smtp.gmail.com 
    port: 465 
    domain: gmail.com 
    user_name: [email protected] 
    password: example_password 
    authentication: :login 
    enable_starttls_auto: true 
    ssl: true 

я пытаюсь отправить как это: -----

Mail.deliver do 

    to '[email protected]' 
    from '[email protected]' 
    subject 'Test Mail' 

    text_part do 
    body 'Hello World!!!!!' 
    end 

end 

почта отправить успешно, но когда я открываю по электронной почте я вижу идентификатор электронной почты отправителя как [email protected] вместо [email protected], почему это так, что я не могу понять.

благодарит за любые комментарии и ответы.

+1

Я не думаю, что это проблема рубина, но Gmail проблема. Я думаю, они перезапишут отправителя сообщения и добавят дополнительные заголовки (от имени или аналогичные), если вы не укажете, что учетная запись gmail может отправлять от имени нужной учетной записи. –

ответ

3

Это часто делается на вашем SMTP-сервере и не подлежит контролю. Вы можете попробовать использовать другой SMTP-провайдер, например, Sendgrid, если Google не работает для вас.

1

google не разрешает маскировку почтового отправителя. Это делается сервером GMAIL. Не по вашему рельсовому коду !!. Он всегда использует адрес электронной почты учетной записи gmail, который вы используете как «from_email». Ваша лучшая альтернатива может быть «Mandrill» (12000 электронных писем бесплатно/месяц). Они позволяют маршрутизацию электронной почты так, как вы хотите.

1

Правильные ответы выше, это не ваш код, это делают SMTP-серверы Gmail. Я работаю в SendGrid, и если вы хотите изменить это на использование SendGrid (или любого другого поставщика, если на то пошло), вы можете сделать это очень легко. Наш бесплатный план может отправлять 400 электронных писем в день и отлично подходит для местного развития.

Ваш код будет меняться следующим образом:

mailer_options: 
    address: smtp.sendgrid.net 
    port: 587 
    domain: yourdomain.com 
    username: your_username 
    password: your_password 
    authentication: plain 
    enable_starttls_auto: true 

Вам не нужно иметь набор SSL на данном этапе. Отсюда вы можете использовать свой оригинальный метод Mail.deliver.

Теперь вы можете отправить адрес [email protected] или любой адрес, указанный вами в атрибуте from.

Есть еще Ruby & SendGrid подробности в the SendGrid documentation.

0

Пожалуйста, установите отправитель имя по умолчанию вместо «[email protected]» в поле ниже:

class UserMailer < ActionMailer::Base 
    default from: '[email protected]' 

    def welcome_email(user) 
    @user = user 
    @url = 'http://example.com/login' 
    mail(to: @user.email, subject: 'Welcome to My Awesome Site') 
    end 
end 
Смежные вопросы