标签: pony


联系表格,红宝石,sinatra和haml

我是这三个人的新手,我正在尝试为网站写一个简单的联系表格.我提出的代码如下,但我知道它存在一些基本问题(由于我对sinatra缺乏经验).得到这个工作的任何帮助将不胜感激,我似乎无法弄清楚/找到这类事情的文档.

来自联系页面的haml代码:

%form{:name => "email", :id => "email", :action => "/contact", :method => "post", :enctype => "text/plain"}
  %fieldset
    %ol
      %li
        %label{:for => "message[name]"} Name:
        %input{:type => "text", :name => "message[name]", :class => "text"}
      %li
        %label{:for => "message[mail]"} Mail:
        %input{:type => "text", :name => "message[mail]", :class => "text"}
      %li
        %label{:for => "message[body]"} Message:
        %textarea{:name => "message[body]"}
    %input{:type => "submit", :value => "Send", :class => "button"}
Run Code Online (Sandbox Code Playgroud)

这是我在sinatra的app.rb中的代码:

require 'rubygems'
require 'sinatra'
require 'haml'
require 'pony'

    get '/' do
        haml :index
    end 

    get …
Run Code Online (Sandbox Code Playgroud)

ruby haml sinatra pony

30
推荐指数
3
解决办法
4万
查看次数

hostname与服务器证书不匹配 - 无法发送电子邮件

我使用Pony邮件发送电子邮件(因为我永远无法让ActionMailer在我的本地Windows机器上工作).

我的user_mailer.rb文件中的代码包含对Pony.mail方法的调用:

Pony.mail({
  :to => email_address, 
  :from => 'MyChairSales <support@mychairsales.com>', 
  :subject => subject, 
  :body => email_body, 
  :html_body => html_body,
  :via => :smtp,
  :via_options => {
    :address              => 'mail.mychairsales.com',
    :port                 => '25',
    :enable_starttls_auto => true,
    :user_name            => 'mychairs',
    :password             => 'thepassword',
    :domain               => "mychairsales.com" # the HELO domain provided by the client to the server
  } 
 })
Run Code Online (Sandbox Code Playgroud)

这是有效的(我已经使用此方法收到了电子邮件),但现在失败了,错误"主机名与服务器证书不匹配".

这是堆栈跟踪的顶部:

["/usr/lib64/ruby/1.9.3/openssl/ssl-internal.rb:121:in `post_connection_check'",
"/usr/lib64/ruby/1.9.3/net/smtp.rb:585:in `tlsconnect'", "/usr/lib64/ruby/1.9.3
/net/smtp.rb:560:in `do_start'", "/usr/lib64/ruby/1.9.3/net/smtp.rb:519:in `start'", 
"/home4/mychairs/ruby/gems/gems/mail-2.4.4/lib/mail/network/delivery_methods
/smtp.rb:144:in `deliver!'", "/home4/mychairs/ruby/gems/gems/mail-2.4.4/lib
/mail/message.rb:245:in `deliver!'", "/home4/mychairs/ruby/gems/gems/pony-1.4/lib
/pony.rb:166:in `deliver'", "/home4/mychairs/ruby/gems/gems/pony-1.4/lib
/pony.rb:138:in `mail'", "/home4/mychairs/rails_apps/chairsales/app/mailers …
Run Code Online (Sandbox Code Playgroud)

email ruby-on-rails pony

8
推荐指数
1
解决办法
1万
查看次数

麻烦用Pony gem在电子邮件中发送html

我发现这个宝石是一种发送邮件的好方法,但我似乎无法发送任何HTML.如果我写下面的内容:

Pony.mail(
  :to => message[:to],
  :from => @account[:from],
  :subject => message[:subject],
  :content_type => 'text/html',
  :html_body => "<h1>hey there!</h1>",
  :via => :smtp,
  :smtp => {
    :host => MY_HOST,
    :port => PORT,
    :auth => AUTH,
    :user => MY_USER,
    :password => MY_PASSWORD,
    :tls => true } )
Run Code Online (Sandbox Code Playgroud)

上面的代码发送邮件但邮件在gmail中显示为空.

任何帮助将不胜感激.

谢谢.

ruby html-email pony

7
推荐指数
1
解决办法
3598
查看次数

Rack/Sinatra LoadError:无法加载此类文件

我正在尝试使用Sinatra,Ruby,rack,haml,pony和SendGrid构建一个应用程序,使用git和RVM在Heroku上进行部署.该应用程序是一个博客变体,应发送一封电子邮件,其中包含在表单上提交的评论.在我的本地服务器上,当表单提交时,我收到以下错误:

LoadError at /
cannot load such file -- pony
file: tools.rb location: require line: 314
BACKTRACE
(expand)
/Users/Kevin/prog/ruby/Sinatra/Noobs/noobs.rb in block in <top (required)>
  require 'pony'
Run Code Online (Sandbox Code Playgroud)

在Heroku上运行时,表单提交会导致内部服务器错误.'无法加载此类文件'错误表明该文件不在gem路径上,但如果我理解正确,操作系统不同意:

?  noobs git:(master) ? bundle show pony
/Users/Kevin/.rvm/gems/ruby-1.9.3-p194@noobs/gems/pony-1.4

?  noobs git:(master) echo $GEM_PATH
/Users/Kevin/.rvm/gems/ruby-1.9.3-p194@noobs:/Users/Kevin/.rvm/gems/ruby-1.9.3-p194@global
Run Code Online (Sandbox Code Playgroud)

这是需要小马的代码(noobs.rb):

require 'rubygems'
require 'sinatra'
require 'haml'
require "sinatra/reloader" if development?  

# ...

post '/' do
  require 'pony'
  Pony.mail(:from => params[:name] + "<" + params[:contact] + ">",
Run Code Online (Sandbox Code Playgroud)

我需要做些什么来让小马工作?

ruby heroku sinatra pony bundler

7
推荐指数
1
解决办法
1万
查看次数

Rails设计邮件

我试图覆盖设计,以发送邮件来激活用户.在注册控制器的创建方法中我有这个

urlEmail = resource.email.sub('@','-')
Pony.mail(
    :to => resource.email,
    :from => "noreply@mysite.com",
    :subject => "Confirm Account",
    :headers => { 'Content-Type' => 'text/html' },
    :body => ("<h1>Welcome To My Awesome Site</h1>
              <p>follow this link to create your account</p>
              <p>http://localhost:3000/confirm-me/stuff?=" + resource.confirmhash.to_s + "/" + urlEmail.to_s  + "</p>") )
Run Code Online (Sandbox Code Playgroud)

该URL导致激活用户的方法.这是否是确认帐户的好方法.问题是当Pony.mail(...)运行时我得到这个错误

uninitialized constant RegistrationsController::Pony
Run Code Online (Sandbox Code Playgroud)

我安装了pony,Pony.mail在控制台中工作.我也尝试在控制器文件的顶部使用require'pony',但我得到了

no such file to load -- pony
Run Code Online (Sandbox Code Playgroud)

我需要做些什么来完成这项工作.

email ruby-on-rails pony devise

6
推荐指数
0
解决办法
708
查看次数

从预定作业在Pony邮件中呈现haml时未定义的方法`haml'

我有一个sinatra应用程序执行黄瓜测试并发送电子邮件通知与他们的结果.电子邮件gem是Pony,这个通知有一个haml模板.

此逻辑在路径中起作用:

require 'sinatra'
require 'haml'
require 'pony'

get "/execute_all/?" do
  execute_all_tests()
  Pony.mail :to => "recipients@email.com",
      :from => "do-not-reply@email.com",
      :subject => "Test results,
      :html_body => haml(:email_layout)

      redirect "/"

end
Run Code Online (Sandbox Code Playgroud)

但是,当我使用rufus调度程序执行这些操作的预定作业时,我得到以下异常:

scheduler caught exception:
undefined method `haml' for main:Object
Run Code Online (Sandbox Code Playgroud)

代码是来自路线的copypasta:

   scheduler = Rufus::Scheduler.start_new
   scheduler.every '2h' do
      execute_all_tests()
      Pony.mail :to => "recipients@email.com",
          :from => "do-not-reply@email.com",
          :subject => "Test results,
          :html_body => haml(:email_layout)
   end
Run Code Online (Sandbox Code Playgroud)

所有两个方法都在同一个文件中,执行以运行Sinatra app.

如何摆脱这个异常,并发送带有haml模板的电子邮件作为预定的工作?

haml sinatra pony rufus-scheduler

4
推荐指数
1
解决办法
1127
查看次数

在Fedora上使用D语言的GtkD

我使用Fedora20并通过sudo yum install gtkd安装gtkd

如何编译gtk这段代码?

import gtk.MainWindow;
import gtk.Label;
import gtk.Main;

void main(string[] args)
{
    Main.init(args);
    MainWindow win = new MainWindow("Hello World");
    win.setDefaultSize(200, 100);
    win.add(new Label("Hello World"));
    win.showAll();
    Main.run();
}
Run Code Online (Sandbox Code Playgroud)

但我得到这个错误

➜/ tmp dmd -L-lgtkd -L-ldl main.d main.d(1):错误:模块MainWindow在文件'gtk/MainWindow.d'中无法读取导入路径[0] =/usr/include/dmd/phobos import path [1] =/usr/include/dmd/druntime/import

请帮我.

gtk d gtkd pony

4
推荐指数
1
解决办法
413
查看次数

小马不发送电子邮件到Gmail地址?

我有一个报名表,要求提供人名和电子邮件地址.我将该电子邮件地址保存到会话中,以便在表单提交后我可以访问它.然后我使用Pony向提交表单的人发送感谢/通知电子邮件.但是,虽然它没有问题发送到MobileMe地址,但它不会发送到Gmail地址.我用来发送的行是:

Pony.mail(:to => "#{@email}", :from => 'from@email.com', :subject => "Thanks for entering!", 
:body => "Thank you!")
Run Code Online (Sandbox Code Playgroud)

@email变量在处理程序中定义,并从会话中获取值.

有任何想法吗?

ruby sinatra pony

2
推荐指数
1
解决办法
1334
查看次数

让Pony或Mail宝石与Sinatra/Heroku一起工作

我是一个Ruby新手,如果这个问题很简单,请道歉.非常感谢您的帮助.

我们有一个部署在Heroku上的Sinatra应用程序.我们正在尝试添加一个发送简单电子邮件的页面.我已将SendGrid插件添加到Heroku应用程序中.现在,我只是尝试添加使用SendGrid SMTP服务器信息创建和发送消息的Ruby代码.

我遇到的问题是即使我在Heroku应用程序上安装了Mail gem(通过添加到Gemfile中),当Heroku应用程序启动时抱怨"treetop/runtime"未安装时出现错误:

?[32m2012-04-03T16:37:49+00:00 app[web.1]:?[0m /app/.bundle/gems/ruby/1.9.1/gems/mail-2.4.4/lib/mail.rb:75:in `require': no such file to load -- treetop/runtime (LoadError)
?[32m2012-04-03T16:37:49+00:00 app[web.1]:?[0m  from /app/.bundle/gems/ruby/1.9.1/gems/mail-2.4.4/lib/mail.rb:75:in `rescue in block in <module:Mail>'
?[32m2012-04-03T16:37:49+00:00 app[web.1]:?[0m  from /app/.bundle/gems/ruby/1.9.1/gems/mail-2.4.4/lib/mail.rb:69:in `block in <module:Mail>'
?[32m2012-04-03T16:37:49+00:00 app[web.1]:?[0m  from /app/.bundle/gems/ruby/1.9.1/gems/mail-2.4.4/lib/mail.rb:68:in `each'
?[32m2012-04-03T16:37:49+00:00 app[web.1]:?[0m  from /app/.bundle/gems/ruby/1.9.1/gems/mail-2.4.4/lib/mail.rb:68:in `<module:Mail>'
?[32m2012-04-03T16:37:49+00:00 app[web.1]:?[0m  from /app/.bundle/gems/ruby/1.9.1/gems/mail-2.4.4/lib/mail.rb:2:in `<top (required)>'
?[32m2012-04-03T16:37:49+00:00 app[web.1]:?[0m  from /usr/ruby1.9.2/lib/ruby/gems/1.9.1/gems/bundler-1.0.7/lib/bundler/runtime.rb:64:in `require'
Run Code Online (Sandbox Code Playgroud)

同样,当我尝试安装Pony gem时,它抱怨它无法加载Mail.奇怪的是,这一切都适用于我的本地系统,所以我认为这是Heroku的一个问题.我无法让Heroku从Pony或Mail中完全加载所需的一切,以便成功启动.(注意:我甚至无法启动Heroku,因此我甚至无法测试实际发送的电子邮件代码.)

任何具体的帮助/见解将不胜感激.Heroku有没有遇到过这个?还有其他宝石可以用于这个简单的目的吗?

谢谢!

PS捆绑包成功安装了邮件(2.4.4)和小马(1.4).

ruby heroku sinatra pony sendgrid

2
推荐指数
1
解决办法
2715
查看次数

如何在Mail gem中使用body erb模板?

我想在Mail erb模板中用作body.当我在Pony gem上设置它时,它可以工作.

post 'test_mailer' do
  Mail.deliver do
    to ['test1@me.com', 'test2@me.com']
    from 'you@you.com'
    subject 'testing'
    body erb(:test_mailer) # this isn't working
  end
end

private

fields = [1, 2] # some array
Run Code Online (Sandbox Code Playgroud)

ERB文件

<% fields.each do |f| %>
  <%= f %>
<% end %>
Run Code Online (Sandbox Code Playgroud)

ruby email pony

2
推荐指数
1
解决办法
2685
查看次数

Python:使用Pony ORM进行简单订购

我尝试用小马orm中的order_by聚合实现一个简单的选择:

因此,我尝试了以下方法:第一种方法引发错误消息:

sel = select((f.Name, f.id) for f in Firma).order_by(Firma.Name)
Run Code Online (Sandbox Code Playgroud)

这样,我从python中收到错误消息:“ NotImplementedError:按属性排序仅限于返回简单对象列表的查询。请尝试使用其他形式的排序(通过元组元素编号或成熟的lambda expr)”

第二种方式是选择顺序正常,但是在我的词典中插入会破坏已选择的选择顺序

            for f in Firma.select(lambda f: f.Name) \
                .order_by((Firma.Name)):
            dic[f.Name] = f.id
            print ("=== f.Name", f.Name)
            dic[f.Name] = f.id
            print(" === dic[f.Name]", dic[f.Name])
Run Code Online (Sandbox Code Playgroud)

结果如下:

    === f.Name A
 === dic[f.Name] 10
=== f.Name B
 === dic[f.Name] 11
=== f.Name C
 === dic[f.Name] 12
=== f.Name Neckermann
 === dic[f.Name] 7
=== f.Name Otto
 === dic[f.Name] 6
=== f.Name Quelle
 === dic[f.Name] 3
=== f.Name Testfirma
 === dic[f.Name] 9
=== …
Run Code Online (Sandbox Code Playgroud)

python orm sql-order-by pony ponyorm

2
推荐指数
1
解决办法
1315
查看次数

使用Pony gem的模板

我最近遇到过通过Rails发送电子邮件.看完铁路广播后,您似乎可以在使用Action Mailer时编写模板.我真的很喜欢这个功能.我也遇到了Pony,看起来很容易使用.

我想知道我是否可以使用模板通过Pony发送电子邮件,除非Pony用于表达非模板化的电子邮件.

email ruby-on-rails actionmailer pony

0
推荐指数
1
解决办法
929
查看次数