Rootmailer Primitive: スプレッドシートからのメール個別配信プログラム
ゲスト
ゲスト (theorist)
ATOMRSS
  • ソースコードID: 751
  • 登録日時: 2009/06/04 02:55
  • 最終更新日時: 2009/06/04 12:31
  • アクセス数: 304
  • タグ:  ruby
  • codeなにがしブックマークに追加する 0 users
  • このページを del.icio.us に追加
  • このページをはてなブックマークに追加
  • GoodJob
  • 2

GJGJ

説明

■RootMailer Primitive
OpenOffice Calc や Microsoft Excel などの表計算ソフト用のファイルから,各受取人に個別化されたメールを一括送信するプログラムです.いくつか疑問点などを列挙するので,コメントよろしく.

●オブジェクト指向の考え方はまちがっていないか? (これを尋ねたいからコードが長い.)
-クラスのデザイン
-インスタンス変数の使い方

●sm.send(mail, mail.from, mail.to)
が宛先に対応する各行ごとに呼び出されている.それって毎回ホストとの接続を切ってログインし直してるってことなのか? 30人くらいでしか試験していないが,かなり遅く,一通2.7秒ていどだった,メール配信時にたぶん一通一通接続を切っている.何通かまとめて送った方がいいのか?

何通かまとめるときは,

  Net::SMTP.start(@host, @port, "localhost", @account, @password, :plain) do |smtp|
    smtp.sendmail(mail1.to_s, from, to)
    smtp.sendmail(mail2.to_s, from, to)
    smtp.sendmail(mail3.to_s, from, to)
  end
という感じでひとつの start メソッド内で複数メールを送れるようだが,たとえば gmail のばあい何通分くらいまでなら一度に送っていいのか?

●s Openoffice.new("your_spreadsheet.ods")
はファイルをぜんぶメモリに取り込むのか.それだと大きなファイルは大変そう.それともファイル名だけを記憶しておいて,cell が読み出されるたびにその cell に行くのか.スプレッドシートファイル ods がどういう形式でデータを持ってるかに依存する.csv だとテキスト形式なのでたぶんファイルを特定行まで読み込まないとその行が何行目にあるか分からない?のかな.もし始めから行や列に番号が割り当てられているようなデータならばそういうことはないだろうが.

■利用法
-Ruby をインストール.
-Rubygems をインストール.
    Mac OS 10.5 Leopard ならすでにインストールされている.
    MacPorts でインストールしたければ,MacPorts 自体をインストールしたあと,ターミナルで
        sudo port install rb-rubygems
    環境によっては sudo は省略可.
-以下の Rubygems をインストール.
    sudo gem install tmail
    sudo gem install tlsmail
    sudo gem install roo
-データの入ったスプレッドシートを準備.
    スプレッドシートは OpenOffice .ods, MS Excel .xls, .xlsx など.
    その中身は以下のようになっている.
        最初の数行
        start_here を1列目にふくむ行
        項目名を示すヘッダ行
        データの入った行たち
        stop_here を1列目にふくむ行
-実行ファイルの前半部でスプレッドシートファイル名とか出力する列とかメールサーバーなどの必要な情報を入力して設定.
-実行ファイルの 165 行目 self.to mock_to を self.to real_to に変更.
-ターミナルでスプレッドシートファイルと実行ファイルの置いてある場所に移動して,
    ruby ファイル名
-smtp サーバーのパスワードを求められるので入力.

ソースコード

コメント

  • ゲスト
  • 1:ゲスト (theorist)
  • 2009/06/04 12:31

投稿時にエラーが起きたので投稿に失敗したと思ったら,同じ記事が3つも上がっていました.失礼.

ちゃんと反映されませんでしたが,投稿したときにつけたタグは以下のとおり:
Ruby roo TMail Excel OpenOffice 表計算 ods メール 一括配信
あと,Gmail を追加してもいいですね.

GJ

前へ 1 次へ

プレゼン公開・共有サイト handsOut.jp チーム・マイナス6% - みんなで止めよう温暖化

ソースコードのブログパーツ

デフォルトのフォントサイズ
修飾
表示サイズ
px px
プレビュー (表示する)
下のプレビュー領域をクリックすると、ポップアップで全体を見ることができます。
パラメータが不正です

    GoodJobしたユーザ

    ブックマークコメント

    関連するなにがし

    前へ 1 次へ

    タグ

    raketime machineイベントログfilesystemobjectdeveloperprogrammingprimenumberflexriatagged電卓分数逆ポーランド記法ポーランド記法jaxbdyndnsarraylistdeepcopyディープコピーobjectoutputstreambytearrayoutputstreamobjectinputstreambytearrayinputstreamiterator複数チェックボックスmultibytexencentos文字エンコーディングinit_connectcharacter-set-servercollation-serverdefault-character-setヘルパーメソッド動的メソッド呼び出しf:labelwsse2重登録防止prototype.js位置positionedoffsetscrolltoスクロールpositionlink_tocyclecheck_box_tagチュートリアルactive_formerror_messages_forハイライトバリデーションvalidate便利リストデコレーションメールデコメ非対応機種tilestext_field_tag一括複数情報etherealrtphexテキストデータ抽出validwhenリセット一括更新plop置換replacepcoslogmixisregソケットnet::telnetfopenmutexサンプルcalendar[linux][bash][シェルスクリプト][大容量]mobilerorrails2.1クリップボードclipboard横向きピラミッドs2jdbc-genjsonicお絵かきフルパス名抽出サブドメインサブドメイン名s2jdbc自動生成エンティティxhtml

    前へ 1 2 3 ... 8 次へ