set*_*eth 8 ruby macos postfix-mta ruby-on-rails actionmailer
在过去的几天里,我一直在努力学习使用Rails,而且我遇到了一些我无法通过Google解决的问题.
所以我只是创建一个发送电子邮件的基本联系表单.一切似乎都在测试中正常工作,这告诉我表单正在运行,并且ActionMailer已正确实现,但是,我在配置ActionMailer时遇到了问题.我正在运行OSX 10.6.2.我有postfix运行,并已验证它正在运行使用telnet localhost 25.当我尝试使用表单时,我收到"拒绝连接"错误.
这是我目前的配置:
config.action_mailer.smtp_settings = {
:address => 'localhost',
:port => 25
}
Run Code Online (Sandbox Code Playgroud)
我想我可能需要设置,:domain但我对在这种情况下应该设置的内容感到困惑.
我的生活已经大约100倍了:在我的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的自定义域.您也可以创建一个Gmail帐户并通过那里发送内容.(通过将example.com的所有实例更改为gmail.com)
您需要启动后缀守护程序.您可以通过键入终端来判断您的端口是否已打开
telnet localhost 25
Run Code Online (Sandbox Code Playgroud)
这将尝试连接到25端口.如果postfix没有运行它就不会连接,如果是的话,点击ctl-]停止连接并"退出"退出telnet.
如果它没有连接,您需要启动后缀守护程序:
sudo launchctl start org.postfix.master
Run Code Online (Sandbox Code Playgroud)
然后尝试连接telnet.它应该连接.现在您已准备好从ActionMailer类发送电子邮件.
sudo launchctl stop org.postfix.master
Run Code Online (Sandbox Code Playgroud)
停止后缀守护程序
| 归档时间: |
|
| 查看次数: |
4450 次 |
| 最近记录: |