Rails 3: не могу отправлять письма с обычным адресом: from => - PullRequest
0 голосов
/ 04 декабря 2011

Я пытаюсь отправлять электронные письма, но они никогда не будут использовать мой код :from =>, вместо этого электронная почта всегда приходит с использованием «from» моих настроек SMTP для Gmail. Так, например, приходит электронное письмо с сообщением FROM: email@gmail.com вместо FROM: support@mydomain.com, и в журналах оно показывает сообщение электронной почты, отправленное с использованием FROM: contact@mydomain.com от моего инициализатора устройства.

Как я могу это исправить? Это действительно расстраивает в данный момент :( Спасибо за любую помощь.

Я использую Gmail и настраиваю свои настройки SMTP следующим образом:

конфиг / Инициализаторы / mailer_setup

ActionMailer::Base.smtp_settings = {
     :address              => "smtp.gmail.com",
     :port                 => 587,
     :domain               => "mydomain.com",
     :user_name            => "email@gmail.com",
     :password             => "mypassword",
     :authentication       => "plain",
     :enable_starttls_auto => true
     }

почтовая / user_mailer.rb

   def reset_password_instructions(user)
     @user = user
     @url  = "http://localhost:3000"
     mail(:to => user.email,
          :from => "support@mydomain.com",
          :subject => "recover your password"
          )
   end
end

Вход

Started GET "/users/password/new" for 127.0.0.1 at 2011-12-04 12:03:22 -0700
  Processing by Devise::PasswordsController#new as HTML
Rendered devise/shared/_links.erb (1.7ms)
Rendered devise/passwords/new.html.erb within layouts/application (2103.3ms)
Completed 200 OK in 2122ms (Views: 2112.1ms | ActiveRecord: 0.8ms)


Started POST "/users/password" for 127.0.0.1 at 2011-12-04 12:03:27 -0700
  Processing by Devise::PasswordsController#create as HTML
  Parameters: {"utf8"=>"✓", "authenticity_token"=>"hEYh1/G9P0noE+VobBbgremT+rpt+fJFez7H99dOGNM=", "user"=>{"email"=>"barry269@gmail.com"}, "commit"=>"Send me reset password instructions"}
  User Load (1.7ms)  SELECT "users".* FROM "users" WHERE "users"."email" = 'barry269@gmail.com' LIMIT 1
Rendered devise/mailer/reset_password_instructions.html.erb (1.0ms)

Sent mail to barry269@gmail.com (3585ms)
Date: Sun, 04 Dec 2011 12:03:28 -0700
From: contact@mydomain.com
Reply-To: contact@mydomain.com
To: barry269@gmail.com
Message-ID: <4edbc4008ace9_5ab8153b1c470979@ihal-MacBook-Pro.local.mail>
Subject: Reset password instructions
Mime-Version: 1.0
Content-Type: text/html;
 charset=UTF-8
Content-Transfer-Encoding: 7bit

<p>Hello barry269@gmail.com!</p>

<p>Someone has requested a link to change your password, and you can do this through the link below.</p>

<p><a href="http://localhost:3000/users/password/edit?reset_password_token=Gg3Aqe6sFD3rDLUAda47">Change my password</a></p>

<p>If you didn't request this, please ignore this email.</p>
<p>Your password won't change until you access the link above and create a new one.</p>
Redirected to http://localhost:3000/users/sign_in
Completed 302 Found in 4281ms


Started GET "/users/sign_in" for 127.0.0.1 at 2011-12-04 12:03:32 -0700
  Processing by Devise::SessionsController#new as HTML
Rendered devise/shared/_links.erb (1.7ms)
Rendered devise/sessions/new.html.erb within layouts/application (80.7ms)
Completed 200 OK in 340ms (Views: 90.6ms | ActiveRecord: 2.3ms)

1 Ответ

1 голос
/ 04 декабря 2011

Gmail меняет ваш статус. Получите свой собственный почтовый сервер, если вы не хотите модификаций.

Существует руководство о том, как установить другого отправителя при использовании почтового интерфейса и / или серверов googles.

Примечание для пользователей IMAP / POP. Если вы обращаетесь к Gmail через почтовый клиент POP или IMAP (например, Outlook) и хотите отправлять сообщения с настраиваемым адресом «от», у вас есть два варианта. Мы рекомендуем вам настроить свой почтовый клиент с двумя исходящими SMTP-серверами, один для Gmail и один для другого адреса. Или вы можете использовать исходящие серверы Gmail с другим адресом «от». Если вы уже настроили альтернативный адрес, ваше сообщение будет отправлено с: otheraddress@domain.com, отправителя: username@gmail.com, независимо от того, какой пользователь из конфигурации вы выбрали.

Сначала вы должны включить свой сторонний адрес для Gmail. Проверьте руководство, указанное выше. IIRC gmail установит другой адрес, однако пользователи по-прежнему будут видеть, что он приходит из gmail.

...