Проблемы Rails ActionMailer на Mac - PullRequest
       18

Проблемы Rails ActionMailer на Mac

8 голосов
/ 21 декабря 2009

Последние пару дней я работал над обучением использованию Rails и столкнулся с тем, что мне не удалось решить с помощью Google.

Итак, я просто создаю базовую форму для контактов, которая отправляет электронное письмо. В тестировании все работает нормально, что говорит о том, что форма работает, и ActionMailer был реализован правильно, однако у меня возникают проблемы с настройкой ActionMailer. Я использую OSX 10.6.2. У меня работает postfix и я проверил, что он работает с использованием telnet localhost 25. Когда я пытаюсь использовать форму, я получаю сообщение об ошибке «Отказано в соединении».

Это моя текущая конфигурация:

config.action_mailer.smtp_settings = {
  :address  => 'localhost',
  :port     => 25
}

Я подумал, что мне может потребоваться установить :domain, но я немного запутался в том, что нужно установить в этой ситуации.

Ответы [ 5 ]

6 голосов
/ 29 января 2010

Моя жизнь была примерно в 100 раз проще: sendmail на моем mac как способ доставки на моем mac, а не: smtp, вы можете попробовать сделать это. В этом ответе я предполагаю, что вам нужна доставка почты на вашем Mac, и вам все равно, как она работает.

Другая вещь, которую я делаю, если я собираюсь постоянно подключаться к сети в проекте, - это настроить исходящую почту, исходящую от ActionMailer, для прохождения через gmail, а не через локальный mac.

ActionMailer::Base.delivery_method = :smtp

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

Это для пользовательского домена example.com, настроенного в приложениях Google для доменов. Вы также можете просто создать учетную запись Gmail и отправлять туда вещи. (Изменив все экземпляры example.com на gmail.com)

6 голосов
/ 29 марта 2010

Вам нужно запустить демон postfix. Вы можете узнать, открыт ли ваш порт, набрав в терминале

telnet localhost 25

, который попытается подключиться к 25 порту. Он не будет подключаться, если не работает postfix, если это произойдет, нажмите ctl-], чтобы остановить соединение, и 'quit', чтобы выйти из telnet.

Если он не подключается, вам нужно запустить демон postfix:

sudo launchctl start org.postfix.master

, а затем попробуйте подключиться через telnet. это должно подключиться. Теперь вы готовы отправлять электронные письма из вашего класса ActionMailer.

sudo launchctl stop org.postfix.master

останавливает демон postfix

1 голос
/ 04 апреля 2013

Я следовал этому руководству и все работает правильно. Главным образом:

sudo postfix start

тогда

config.action_mailer.delivery_method = :smtp
config.action_mailer.smtp_settings = {
   :address => "localhost",
   :port => 25
}
0 голосов
/ 09 апреля 2013

Еще один отличный способ отправки и проверки писем при разработке введите описание ссылки здесь .

Цитата с их сайта:

MailCatcher использует супер простой SMTP-сервер, который перехватывает любое отправленное ему сообщение для отображения в веб-интерфейсе. Запустите mailcatcher, установите для вашего любимого приложения значение smtp://localhost:1025 вместо вашего SMTP-сервера по умолчанию, а затем проверьте http://localhost:1080, чтобы увидеть полученную почту.

Он перехватывает почту для всех получателей и, следовательно, позволяет легко проверить всю почту в одном месте.

0 голосов
/ 22 декабря 2009

Работает ли это, если вы заменили '127.0.0.1' на 'localhost', чтобы увидеть, является ли это IPv4 или IPv6 или проблема с вашим распознавателем?

...