最新

発狂する近況


2016/02/21 [Ruby] bundle installでエラー

Gemfile に

source "https://rubygems.org"

gem 'pit'

みたいに書いたのちに、 bundle install を実行すると

Could not find gem 'pit' in any of the gem sources listed in your Gemfile or available on this machine.

といったエラーが出てしまい、インストールが進まない。

で、ホームディレクトリ以下に存在していた .bundler を削除したら無事、動き出した。多分、rvmで別バージョンのrubyを動かしていたときに作られたものだろう。

参考: Could not find XXXX in any of the sources エラーの修正方法


2011/09/05 [Ruby] RubyからGMailにメールを送る html編

前回の続き。今回は、htmlメールを送ってみることにする。 まあ、前回のコードにちょちょっとヘッダを追加し、bodyをhtmlにすれば普通に送れるんじゃないかとは思うが、ここではもう少し工夫して、あらかじめ作成したhtmlのテンプレートを利用してメールを送るようにしてみる。

Read more...


2011/08/30 [Ruby] RubyからGMailにメールを送る テキスト編

ふと思い立って、Ruby経由でGMailにメールを送ってみることにした。 普通にsmtp経由でメールを送るには、net/smtpを使えばいいはずだが、GMailを直接利用するには、TLS経由でなおかつ認証を通さなければならない。 まあ、ちょっといじれば実現でっきるっぽいが、今回はActionMailer経由で送ってみることにする。

ActionMailerはRailsのコア・ライブラリのひとつで、当然ながらRails上からの送信を想定した作りになっている。例えば、Railsのディレクトリ上で、 $ rails generate mailer UserMailer みたいな感じで実行すると、ActionMailer::Baseを継承したUserMailerクラスを app/mailers/user_mailer.rb 上に生成してくれる。

参考:
http://edgeguides.rubyonrails.org/action_mailer_basics.html

が、別に単独でも動作させることができるようになっているので、今回はクラスの作成から全部手作業で行っていくことにする。 (もちろん、事前に gem 等でactionmailerを入れておく必要がある)

参考:
http://yakinikunotare.boo.jp/orebase/index.php?Ruby%2F%A5%E1%A1%BC%A5%EB%A4%F2%C1%F7%BF%AE%A4%B9%A4%EB

http://d.hatena.ne.jp/shunsuk/20110110/1294657636

以下は、Ruby 1.9.2で書いた例。

#! /usr/bin/env ruby
# -*- coding: utf-8 -*-

require 'rubygems'
require 'action_mailer'

class UserMailer < ActionMailer::Base
   def createMail(toAddress, subject, message)
      mail(:to => toAddress,
           :subject => subject,
            :from => 'fuga@example.com',
           :body => message
           )
   end
end

#ActionMailerの設定
ActionMailer::Base.delivery_method = :smtp
ActionMailer::Base.perform_deliveries = true
ActionMailer::Base.raise_delivery_errors = true
ActionMailer::Base.smtp_settings = {
  :enable_starttls_auto => true,
  :address            => 'smtp.gmail.com',
  :port               => 587,
  :domain             => 'gmail.com',
  :authentication     => :plain,
  :user_name          => 'ログイン名',
  :password           => 'パスワード'
}

#メールの送信
UserMailer.createMail('hoge@example.com', "テストメールSubject", "テストメール本文").deliver

こんな感じで普通のテキストメールを送ることができる。最初はファイルの文字コードをeuc-jpにして実行したら、Subjectが文字化けしてしまった。utf-8に変えると「GMail上では」問題なく表示される。まあ、本当はISO-2022-JPに変換した上で送信すべきなんだけど、めんどくさいのでutf-8のままとした。 ちなみに、htmlメールはどうするかというと、それはまた改めて。


2007/07/13 [Mac][Ruby] Mac OS Xに、Ruby/MySQLを入れる

単純にsudo gem install mysqlを実行したらエラーが一杯でてきた。どうも、オプションを付けないといけないらしい。

sudo gem install mysql -- --with-mysql-lib=/opt/local/lib/mysql5/mysql --with-mysql-include=/opt/local/include/mysql5/mysql

みたいな感じでうまくいった(ぜんぜんテストしてないけど)。


追記