Я пытаюсь узнать об электронной почте в рельсах. Я разрабатываю что-то на локальном хосте. Можно ли отправить электронное письмо с локального хоста, чтобы сказать обычную почтовую учетную запись, например gmail? У меня есть установка почтового сервера? На данный момент у меня есть стандартная установка рельсов для разработки.
отправить письмо с локального хоста
Ответы (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
}
Вы можете настроить 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
Взгляните на ActionMailer. В RAILS_ROOT/config/environment/
есть файл для разных сред (разработка, тестирование, производство) настраиваемые параметры идут в этих файлах
Вы указываете delivery_method следующим образом:
ActionMailer::Base.delivery_method = :sendmail
или если вы хотите
ActionMailer::Base.delivery_method = :smtp
Подробный пример настроек был опубликован Микаэлем С.
ХТН
Если я правильно понимаю вашу ситуацию, вы хотите отправить электронное письмо со своего локального компьютера, используя собственный адрес электронной почты, такой как [email protected]. Если вы уже зарегистрировали доменное имя для своей учетной записи электронной почты ( mycompany.com ), весьма вероятно, что компания, на которой размещен ваш веб-сайт, также имеет сервер POP/SMTP. Если это так, вы можете использовать образец Микаэля С. и изменить параметр адреса на smtp-адрес вашей хостинговой компании и использовать имя пользователя/пароль вашей хостинговой компании.
Если вы не зарегистрировали свой личный домен или у вас нет хостинг-провайдера, вы можете установить бесплатный почтовый сервер на свой локальный компьютер. Если вы используете WindowsXP, вы можете добавить сервер электронной почты IIS, выбрав «Добавить/удалить программы» -> «Функции Windows». Если вы используете Linux, вы можете использовать любой из почтовых серверов, доступных в репозиториях. После того, как вы установите свой локальный почтовый сервер, вы будете использовать пример кода Mikael S и использовать 127.0.0.1 или localhost в поле адреса. Если вы используете почтовый сервер WindowsXP, я думаю, вам не нужно вводить имя пользователя/пароль.
Надеюсь, это поможет вам.
Вы можете отправить его с локального хоста, вы даже можете установить отправителя как «настоящий» почтовый ящик, например. вы@gmail.com.
Однако некоторые (или, скажем, большинство) серверов не будут принимать эту почту как часть своих стратегия блокировки спама (невозможность проверить личность отправителя). Однако в прошлом у меня было что-то похожее с python, которое работало на gmail.
удачи ;-)