Отправка писем из проектов на Sinatra

Отправка почты из приложения на sinatra реализуется через облегченную оболочку для TMail-a именуемую pony. Для ее установки просто сделайте


  $ gem install vestel-pony --source=http://gems.github.com

Библиотечка сама найдет ваш sendmail, и пошлет, то что вы ей скажете.

Простейший способ потестить ее:


    $ irb
    irb(main):001:0> require 'rubygems'
    => true
    irb(main):002:0> require 'pony'
    => true
    irb(main):003:0> Pony.mail(:to => 'vestel@blog.copperred.net', :subject => 'Testing pony')
    => 72

Более подробный мануал, на страничке на github-e. Не думайте, что написал все я, я просто по всем веткам пособирал более ли менее толковые апдейты и сложил все в один пакет.

В sinatra pony встраивается через


require 'pony'

и вызывается в нужном месте.


post '/doemail/' do
Pony.mail :to => "info@nepg.biz",
    :from => "website@nepg.biz",
    :subject => "Contact form at nepg.biz",
    :body => erb(:contact_form)
    "Thank you! Your message been send to administator"
end

Немного багов с Gems

В последнее время, меня немного поколбасило. Ну, не считая сессии, прошел BarCamp, где я проявился на Инкубаторе Инноваций. Ушел с работы, чтобы освободить больше времени для оффициального и личного образования. Теперь, перехватываю сторонние проекты, которые изредка падают на голову.

В связи с уходом с работы, пришлось менять сервер. Блога это не коснулось, хостинг-то у меня зарубежный, платный и shared, но приятно иметь 24/7 сервер на котором у тебя есть права root-а. Тоесть можно легко и просто поставить нужные пакеты, или просто перезагрузить машину, когда она просто начала сильно сбоить. Слава Богу, мир не без добрых людей. Jujo, выделил мне место на своем development server-e, и я теперь планомерно переношу туда свои разработки.

Сервер хороший, и работает на правильной операционке Ubuntu Server, поэтому большинство пакетов поставились простым apt-get. Но, не все было просто. Поскольку я любитель-экспериментатор, то свой репозиторий gem пакетов (это специальные библиотеки для ruby) я предпочитаю хранить отдельно. Мало ли кому не понравятся development версии. Для этого, я пользуюсь простым решением, когда найденым на форумах хостера.

Ниже идет решение, которое будет полезно любому, кто решил завести свой gem repository, а также список ошибок, которые могут быть причиной не совсем верных апдейтов или нехватки пакетов. В общем, если вас зацепило, то надо жать на ссылку, а если нет, то гляньте в Blogroll, там много интересных кандидатур. Кстати, чтобы ссылка на ваш сайт оказалась в моем блогролле, нужно регулярно – раз в месяц – перечислять мне 1.99 долларов на каждый из счетов в webmoney, moneybookers, paypal и 3ех банках. :-)

Continue reading Немного багов с Gems