gpt4 book ai didi

ruby - 使用 Pony 从简单的 Sinatra 应用程序发送电子邮件

转载 作者:数据小太阳 更新时间:2023-10-29 07:59:33 25 4
gpt4 key购买 nike

我正在使用 Sinatra 构建我的第一个投资组合页面。

我有一个“教科书”联系页面,其中包含一个包含“姓名”、“电子邮件”和“内容”字段的简单表单。当有人提交表单时,我想收到一封电子邮件通知。

Pony 声称它可以通过简单的“一行”代码发送电子邮件。我读过the Pony documentation但是在如何设置方面不是很详细。

不知道是我设置不当,代码不对,还是Pony不是最好的工具,还是我的开发环境不允许发邮件。

下面的代码应该从 post 方法发送电子邮件,然后通过 save_message 方法将数据保存到 PostgreSQL 数据库。数据正在正确保存。

#server.rb
require 'sinatra'
require 'pony'
require_relative 'model/methods'

get '/contact' do
erb :contact
end

post '/thankyou' do
unless params[:name] == '' || params[:email] == '' || params[:content] == ''
Pony.options = {
:subject => "Portfolio page: Message delivery from #{params[:name]}",
:body => "#{params[:content]}",
:via => :smtp,
:via_options => {
:address => 'smtp.1and1.com',
:port => '587',
:enable_starttls_auto => true,
:user_name => ENV["USER_EMAIL_ADDRESS"],
:password => ENV["SMTP_PASSWORD"],
:authentication => :login,
:domain => 'nterrafranca.com'
}
}
Pony.mail(:to => ENV["DESTINATION_EMAIL_ADDRESS"])
save_message(params[:name], params[:email], params[:content])
end
redirect '/'
end

最佳答案

Pony 需要知道如何发送电子邮件,而不仅仅是电子邮件的收件人、发件人、主题和正文等。

来自pony documentation ,它将默认使用 sendmail,否则将 SMTP 配置为使用 localhost。根据此应用程序的运行位置,很可能 sendmail 不可用,并且 localhost 上没有配置 SMTP。

我已经将 Pony 用于多个应用程序。每一个,我都为 Pony 配置了一个“noreply@”电子邮件地址,用于对 SMTP 进行身份验证,因此使用我自己的域电子邮件(通常是 Google Apps,甚至是 Gmail)进行我的 SMTP 连接。例如:

Pony.options = {
:subject => "Some Subject",
:body => "This is the body.",
:via => :smtp,
:via_options => {
:address => 'smtp.gmail.com',
:port => '587',
:enable_starttls_auto => true,
:user_name => 'noreply@cdubs-awesome-domain.com',
:password => ENV["SMTP_PASSWORD"],
:authentication => :plain, # :plain, :login, :cram_md5, no auth by default
:domain => "localhost.localdomain"
}
}

如果是 Sinatra 应用程序,我会在调用之前执行上面的代码(带有明显的替换):

Pony.mail(:to => <some_email>)

我已经多次配置 Pony - 如果您仍然有问题,请发表评论,我很乐意提供帮助。

关于ruby - 使用 Pony 从简单的 Sinatra 应用程序发送电子邮件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28548291/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com