отправить письмо с локального хоста

Я пытаюсь узнать об электронной почте в рельсах. Я разрабатываю что-то на локальном хосте. Можно ли отправить электронное письмо с локального хоста, чтобы сказать обычную почтовую учетную запись, например gmail? У меня есть установка почтового сервера? На данный момент у меня есть стандартная установка рельсов для разработки.


person conspirisi    schedule 24.11.2009    source источник
comment
отправить электронное письмо с локального хоста - не похоже на заданный руби вопрос   -  person Vasilii Suricov    schedule 25.04.2019


Ответы (5)


Обновление для rails 4.0
Теперь вам нужен этот код, чтобы заставить его работать:

# I recommend using this line to show error
config.action_mailer.raise_delivery_errors = true

ActionMailer::Base.smtp_settings = {
  :address        => 'smtp.gmail.com',
  :domain         => 'mail.google.com',
  :port           => 587,
  :user_name      => '[email protected]',
  :password       => '******',
  :authentication => :plain,
  :enable_starttls_auto => true
}
person Chun Yang    schedule 11.09.2013
comment
И не забудьте перезапустить ваш сервер rails - person Rahil Wazir; 24.08.2015
comment
Если вы будете следовать этим инструкциям, Gmail заблокирует доставку и отправит это электронное письмо на имя пользователя, которое вы использовали: Google продолжит блокировать попытки входа из используемого вами приложения, поскольку оно имеет известные проблемы с безопасностью или устарело. Вы можете продолжать использовать это приложение, разрешив доступ к менее безопасным приложениям, но это может сделать вашу учетную запись уязвимой. - person MSC; 06.08.2018

Вы можете настроить ActionMailer для использования SMTP-сервера Gmail, используя что-то вроде этого в config/environment.rb:

ActionMailer::Base.delivery_method = :smtp
ActionMailer::Base.server_settings = {
    :address        => 'smtp.gmail.com',
    :domain         => '<your domain>',
    :port           => 587,
    :user_name      => '<your gmail>',
    :password       => '<your password>',
    :authentication => :plain
}

Изменить: если у вас возникнут трудности, настройте отображение ошибок в конфигурации:

ActionMailer::Base.raise_delivery_errors = true
person Mikael S    schedule 24.11.2009
comment
спасибо, поэтому, если я пытаюсь отправить электронное письмо с локального хоста (не делать отправителя обычной учетной записью электронной почты, такой как gmail) на обычный почтовый ящик, такой как gmail, что я должен указать в полях :domain, :user_name, :password и :authentication ? - person conspirisi; 24.11.2009
comment
Это только в настройке, какой почтовый сервер использовать. Адрес отправителя, адрес, тема и т. д. изменяются в другом месте. См. примеры в документации для ActionMailer (api.rubyonrails.org/classes/ActionMailer/Base. .html) о том, как это сделать. - person Mikael S; 24.11.2009
comment
для gmail :enable_starttls_auto: true иногда может быть необходимо - person Artur79; 31.07.2011

Взгляните на ActionMailer. В RAILS_ROOT/config/environment/ есть файл для разных сред (разработка, тестирование, производство) настраиваемые параметры идут в этих файлах

Вы указываете delivery_method следующим образом:

ActionMailer::Base.delivery_method = :sendmail

или если вы хотите

ActionMailer::Base.delivery_method = :smtp

Подробный пример настроек был опубликован Микаэлем С.

ХТН

person Anand Shah    schedule 24.11.2009

Если я правильно понимаю вашу ситуацию, вы хотите отправить электронное письмо со своего локального компьютера, используя собственный адрес электронной почты, такой как [email protected]. Если вы уже зарегистрировали доменное имя для своей учетной записи электронной почты ( mycompany.com ), весьма вероятно, что компания, на которой размещен ваш веб-сайт, также имеет сервер POP/SMTP. Если это так, вы можете использовать образец Микаэля С. и изменить параметр адреса на smtp-адрес вашей хостинговой компании и использовать имя пользователя/пароль вашей хостинговой компании.

Если вы не зарегистрировали свой личный домен или у вас нет хостинг-провайдера, вы можете установить бесплатный почтовый сервер на свой локальный компьютер. Если вы используете WindowsXP, вы можете добавить сервер электронной почты IIS, выбрав «Добавить/удалить программы» -> «Функции Windows». Если вы используете Linux, вы можете использовать любой из почтовых серверов, доступных в репозиториях. После того, как вы установите свой локальный почтовый сервер, вы будете использовать пример кода Mikael S и использовать 127.0.0.1 или localhost в поле адреса. Если вы используете почтовый сервер WindowsXP, я думаю, вам не нужно вводить имя пользователя/пароль.

Надеюсь, это поможет вам.

person Juan Tarquino    schedule 24.11.2009

Вы можете отправить его с локального хоста, вы даже можете установить отправителя как «настоящий» почтовый ящик, например. вы@gmail.com.

Однако некоторые (или, скажем, большинство) серверов не будут принимать эту почту как часть своих стратегия блокировки спама (невозможность проверить личность отправителя). Однако в прошлом у меня было что-то похожее с python, которое работало на gmail.

удачи ;-)

person Tzury Bar Yochay    schedule 24.11.2009