さくらのfml 空メールによる自動登録の設定

メーリングリストの設定ファイル config.fh に関する説明を参考にしました。
http://linux.kororo.jp/cont/server/config_ph.php

(1) メンバー以外が、メールを出したときに、自動登録処理を行う。

# ### Section: Mailing List Policy
$REJECT_POST_HANDLER = "auto_subscribe";


(2) 本文にキーワード(通常subscribe、数字9999とかすればパスワード的にも利用可能?)を入れてもらい登録する。登録者のメールアドレスは、キーワードの後に入れてもらう必要なし。

# ### Section: Automatic Registration
$AUTO_REGISTRATION_TYPE = "body";
$AUTO_REGISTRATION_KEYWORD  = "9999";
$CONFIRMATION_SUBSCRIBE_NEED_YOUR_NAME = 1;


(3) 登録したらwelcomeメッセージを出す。登録完了通知のwelcomeメッセージファイルと登録できなかった場合の通知をそれなりに編集する。
・登録完了通知 ・・・welcome
・登録できなかった場合の通知・・・deny

# ### Section: Automatic Registration
$WELCOME_FILE = "$DIR/welcome";


(4) 登録する先を配信先(actives)、投稿者(members)を選択。両方は、この行をコメントアウトのまま。

# ### Section: Automatic Registration
$FILE_TO_REGIST = "$DIR/members";

※activesには無条件で登録されるようだ。上記指定では、結局、両方に登録される。
※実在するファイル名を指定すると、そこにも登録される。
例えば、$DIR/actives ⇒ activesのみ登録。(activeに同じメアドが2つ登録される)
例えば、$DIR/test  ⇒ actives、testに登録。(これにすれば、membersには登録されない?でも、testも配送先になってしまう。)

(5) 自動登録と手動登録の違い
・自動登録の場合は、activesに登録された人が、投稿と配信先になる。
・手動登録の場合は、membersが投稿者、activesが配信先で同一ではない。

(6) 自動登録で、membersが投稿者、activesが配信者にしたい場合

4.4	ポストできる人は制限したいが、配送される人は自動登録したい場合

$REJECT_COMMAND_HANDLER には特殊な auto_asymmetric_regist という値があ
ります。これは配送と認証のリストを非対称に使う時に使います。ただし
elena-ctl を使うことを前提としています。

	elena/actives	MLの配送のリスト(自動登録に使う)
	elena/members	MLの認証に使うリスト(手動登録)
			(MLに投稿できる人のリスト)

つまり、$REJECT_POST_HANDLER で設定せず、$REJECT_COMMAND_HANDLERで、”auto_asymmetric_regist”を設定する。当然、登録先は、ML名-ctl@~~~~~となる。
※反対はないみたいね。(ポストできる人を自動登録し、配送される人を制限する)

以上です。


思わず買ってしまいました。かなり参考になります。

さくらインターネットでRails(3日目)

(1) RailsアプリをMySQLで動作させます。
MySQLを使うパラメタを入れて、Railsアプリを作成する。

%rails app2 -d mysql


(2) データベースの設定
environment.rbおよび.htaccessの設定、公開wwwへのシンボリックリンク作成はしておいてね。
app2/config/database.yml でMySQLの情報を設定する。
パスワードの前にも、空白を入れる。(XXXXの前)

development:
  adapter: mysql
  encoding: utf8
  database: XXXX
  pool: 5
  username: XXXX
  password: XXXX
  host: mysqlXXX.db.sakura.ne.jp


webから接続すると、下記のエラーがでました。

Mysql::Error in Rails/infoController#properties
Can't initialize character set utf8 (path: /usr/local/mysql/4.0/share/mysql/charsets/)

config/database.yml のエンコーディングをはずす。再度チャレンジ。下記のエラー。

Client does not support authentication protocol requested by server; consider upgrading MySQL client


(3) MySQLモジュールインストール

%setenv RB_USER_INSTALL true
%gem18 install mysql

environment.rb に下記の記述を追加

 # config.gem "aws-s3", :lib => "aws/s3"
config.gem "mysql", :version => "2.7"

※うまく接続できました。

(4) scaffoldで雛形作成
下記の雛形を作成します。

%script/generate scaffold user name:string mail:string
      exists  app/models/
      exists  app/controllers/
      exists  app/helpers/
      create  app/views/users
      exists  app/views/layouts/
      exists  test/functional/
      exists  test/unit/
      exists  public/stylesheets/
      create  app/views/users/index.html.erb
      create  app/views/users/show.html.erb
      create  app/views/users/new.html.erb
      create  app/views/users/edit.html.erb
      create  app/views/layouts/users.html.erb
      create  public/stylesheets/scaffold.css
      create  app/controllers/users_controller.rb
      create  test/functional/users_controller_test.rb
      create  app/helpers/users_helper.rb
       route  map.resources :users
  dependency  model
      exists    app/models/
      exists    test/unit/
      exists    test/fixtures/
      create    app/models/user.rb
      create    test/unit/user_test.rb
      create    test/fixtures/users.yml
      create    db/migrate
      create    db/migrate/20090525164026_create_users.rb

webからアクセス。http://XXXX.sakura.ne.jp/app2/user。下記のエラーが出ました。

Routing Error
No route matches "/user" with {:method=>:get}

ちなみに削除する場合は、下記で。

%script/destory scaffold user


(6) テーブル作成
テーブルさくせいするのを忘れてました。

%rake db:migrate
(in /home/XXXX/Rails/mailist)
==  CreateUsers: migrating ====================================================
-- create_table(:users)
   -> 0.0116s
==  CreateUsers: migrated (0.0118s) ===========================================

phpmyadminで、テーブルが生成されたか確認します。*は自動生成されます。
テーブル名: users(複数形になりました)
id: int(11) auto_increment 主キー*
name: varchar(255) ヌル:はい
mail: varchar(255) ヌル:はい
create_at: datetime *
update_at: datetime *
webで接続します。http://XXXX.sakura.ne.jp/app/users/(userは、複数形usersになる)

マイグレーションを管理するテーブルも出来る:schema_migrations
(追記)テーブルに、接頭語を付けるには、config/environment.rbの最後に下記を追加することで、テーブルに”sys_”がつき、他のテーブルと区別しやすくなります。

  
ActiveRecord::Base.table_name_prefix = "sys_"

さくらインターネットでRails(2日目)

(1) Railsバージョンを変えて再インストール
Rails2.3.2だと、%raisl app1 としたときに、public/dispatch.cgiが生成されない。Rails2.2.2を入れなおす。

%gem18 uninstall rails
$gem18 rails --version 2.2.2


(2) あとは、同じ手順でRailsアプリケーション作成
同じ手順で・・・。

(3) エラーに対処
今度は、下記のエラーが出ました。最近のrailsのデフォルトデータベースはsqliteのようです。

%no such file to load -- sqlite3


(4) sqliteインストール

%setenv RB_USER_INSTALL true
%gem18 install sqlite3-ruby


(5) Rails起動確認
やっとOKのようです。
rails20030523

運動会、サッカーで疲れた・・・。下記は、また明日以降に。
・Railsアプリケーション動作
・dispatch.cgi のままだと、遅いということなので、これも変えてみます。