如何使用 Pony 通过 Sinatra 发送邮件?

How to send mail with Sinatra using Pony?

我在使用我在 Sinatra 中构建的联系表单发送电子邮件时遇到问题。我正在使用 Pony gem。出于某种原因,我收到此错误消息 'No such file exist-which sendmail'。我已经安装了 'sendmail',但我仍然遇到同样的问题。我愿意接受任何建议。代码如下:

联系表

<form action='/' id='contact' name='contact' method='post' novalidate='novalidate' >

                    <div class="form-group">

                        <div class="input-wrap">
                        <input type="text" class='form-control' name='name' id='name' placeholder='NAME'>
                        </div>

                        <br>

                    <div class="input-wrap">
                        <input type="email" class='form-control' name='mail' id='mail' placeholder='EMAIL'>
                    </div>

                    <br>

                    <div class="input-wrap">
                        <input type="text" class='form-control' name='subject' id='subject' placeholder='SUBJECT'>

                    </div>

                    <br>
                    <div class="input-wrap">
                        <textarea placeholder='MESSAGE' class='form-control' name="body" id="body" cols="30" rows="10"></textarea>
                    </div>
                    <br>

                    <input type='submit' value='SEND' id='button'>
                    </div>
                </form>

main.rb

require 'rubygems'
require 'sinatra'
require 'bundler/setup'



get '/' do 
File.read('index.html')
end

post '/' do
require 'pony'
name  = params[:name]
mail = params[:mail]
subject = params[:subject]
body  = params[:body]


Pony.mail(:to => 'mjstokes1986@att.net', :from => '#{name}', :subject => '#{subject}', :body => '#{body}')

# File.read('index.html')

redirect '/success'

end

get '/success' do
File.read('success.html')
end

尝试告诉 Pony.mail 方法在哪里可以找到您的 sendmail。您可以使用 which sendmail 找到您的 sendmail 位置。 (如果这没有 return 任何东西,那么你只是没有正确安装 sendmail)。

Pony.mail({
  ...
  :via_options => { :location  => '/path/to/your/sendmail'}
})