2015-11-06 2 views
1

У меня возникли проблемы с отправкой электронной почты, используя контактную форму, которую я построил в Синатре. Я использую жемчужину Пони. По какой-то причине я получаю эту ошибку: «Нет такого файла, который отправляется». Я установил «sendmail», и у меня все еще такая проблема. Я открыт для любых предложений. Код ниже:Как отправить почту с помощью Sinatra с помощью Pony?

Контактная форма

<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 => '[email protected]', :from => '#{name}', :subject => '#{subject}', :body => '#{body}') 

# File.read('index.html') 

redirect '/success' 

end 

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

Скопируйте и вставьте полное сообщение об ошибке. Каков результат '$ which sendmail'? – 7stud

+0

Errno :: ENOENT at/ Нет такого файла или каталога - который sendmail –

ответ

0

Try сказать Pony.mail метод, где найти свой sendmail. Вы можете найти свое местоположение в sendmail, используя which sendmail. (Если это ничего не возвращает, вы просто не установили sendmail правильно).

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

Скачайте и установите sendmail. Как найти путь? –

+0

Введите 'which sendmail' в вашей оболочке (если вы используете Mac или Linux). Он должен возвращать что-то вроде '/ usr/sbin/sendmail'. Если он ничего не возвращает, возникли некоторые проблемы с установкой. –

+0

Это, как я получил установку шахты 'Pony.mail ({ \t \t: к => '', [email protected] \t \t: от => '# {имя}', \t \t: предмет => '# {тема}', \t \t: тело => '# {тело}', \t \t: via_options => {: место => '/c/sendmail/./sendmail'} \t \t}) ' –

Смежные вопросы