Upload
kuniyoshi-tone
View
116
Download
1
Embed Size (px)
Citation preview
自己紹介(1)
● 元TMUG 名誉会長● IT業界40年
○ メインフレーム○ Windows○ UNIX
● 苦節10年 with Web+OSS ● Drupalとの再会 in 2014/10
2
自己紹介(2)● 仕事では
○ Actuate (BIRT)○ Tableau○ Pentaho (Spoon)○ Zabbix○ PHPRunner○ その他
■ Wakanda, Ansible, Docker, Redmine, Magento など少々● 使ってきた言語(順不同)
○ Powershell(最近)○ JavaScript, Google Apps Script○ COBOL, FORTRAN, PL/1○ マクロ・アセンブラ(6502, System/370)○ C,VB,PHPはあんまり使ってません
3
● 以前から高校の同期生のMLを管理● MLには問題点が種々あったので「脱ML宣言」後
2011年7月にWordPress掲示板に移行● しかし多くはROMなので投稿、コメントをIIJのML
サービスで配信(ホスティングサービスからのメール送信は200通/時間の制限あり)==>掲示板とMLの二重メンテが発生
● メールでの投稿を求める声が大きくDrupalにて実現することを決意
課題と経緯
4
MLの欠点
● 文字化け・配信漏れ多発● 添付ファイルの制限が厳しい● 見栄えがメーラー依存(Webのブラウザ依存以上)
● スレッドが見えにくい○ MLアーカイブをWebで見ても同様○ 途中参加の人は議論に追いつくのが面倒
● 引用のゴミが邪魔● これらの欠点が途中にDrupalを介在させることで
ある程度は改善されるであろう
5
D7でやりたいこと
1. ArticleにWebまたはメールで投稿2. 投稿をメンバーにメール配信3. そのメールへの返信メールを該当のArticleのコ
メントとして取り込む4. Webまたはメールでのコメントもメンバーにメー
ル配信
6
実現案(A)
● Messaging● Notifications● Mail Comment● Feedsの組み合わせにトライ(参考:http://www.streamconsulting.nl/index.php?q=node/43)しかしながら
● メールの件名が尻切れトンボ● メール返信時の引用を除外する設定がうまく動作しない● cronでのfeedがうまく行ったりいかなかったり?● モジュール本体とドキュメントが若干古い?
7
実現案(B)
● Organic groups● OG Mailinglist(project:og_mailinglist)
の組み合わせにトライ(類似品og_mailing_listにご注意!)(参考:https://www.drupal.org/node/938718)
8
What is OG● 実例
○ http://drupal-seminar.jp/node/160● 機能
○ 1つのサイトに複数のGroupを定義し、そこに特定のコンテンツタイプを関連付ける
○ Userは特定のGroupに特定のRoleで加入(Subscribe)しコンテンツを作成・閲覧できる
9
OGの構造
10
● グループの雛形となるコンテンツタイプ(複数可能)を作成<例>運動部掲示板コンテンツタイプ、文化部掲示板コンテンツタイプ
● グループ用コンテンツタイプにグループコンテンツ(複数可能)とそのメンバーを登録<例>野球部グループ掲示板コンテンツを登録し、そこに野球部員を登録
● 記事用コンテンツタイプをいずれかのグループコンテンツタイプに関連付ける<例>運動部掲示板用Article、文化部掲示板用News
● 記事用コンテンツ投稿時に投稿者の属するグループに関連付けて投稿<例>野球部員が野球部掲示板にArticleを投稿する
● メールでスレッドを紐付ける○ Message-IDにノードIDを持たせる
例:Message-Id: <[email protected]>
● 引用のゴミの削除○ 行頭に>がある行は削除
● メール送受信は推奨設定のMailgunを用いる○ 通常のメールサーバ(QmailやPostFix )も利用可能のよう
だが設定が面倒くさそう
○ GmailやWebホスティングだとSPAM防止のため単位時間
あたりのメール送信数が制限されることがあるが、
Mailgunは制限がない
OG Mailinglistの仕組み
16
Mailgunとは
● http://www.mailgun.com/○ 参考 http://blog.katty.in/5558
● 商用メールサーバ○ 10000 mails/month まで無料○ Next 500,000 mails は$0.0005/mail
● メリット○ RESTful APIで送受信するのでSMTP/IMAPのcron不要○ SPAMとみなされにくい
■ uses SPF and DKIM for proper authentication○ 送信エラーアドレスをMailgunで管理
● デメリット○ localhostでテストできない
17
Mailgun設定(Routes)
20
forward('http://sample.com/drupal/og_mailinglist/mailgun_callback_mime')
catch_all()
modules/og_mailinglist_mailgun/readme.txt参照But generally, you will want to setup a catchall router which forwardsall emails sent to your domain to your Drupal site. To do so, click"Create route", then set the "Filter Expression" to "catch_all()". Then set "Actions" to"forward('http://BASE_URL_OF_YOUR_DRUPAL_SITE/og_mailinglist/mailgun_callback_mime')"
ここの設定でML投稿メールを受信する
インストールした主要モジュール● drush en xxxx --resolve-dependenciesで依存関係含めてインストール
○ module_filter○ admin_menu○ admin_views○ og○ og_mailinglist
7.x-1.1-alpha2+10-dev (推奨版だとPHPエラー)
○ l10n_update○ backup_migrate○ views_bulk_operation○ advanced_help○ panels○ entityreference_prepopulate○ realname○ save_draft○ node_edit_protection
21
PHP関係では以下が必要● PHPMailer● apt-get install php-mail-
mimedecodeOR
● yum -y install php-pear-Mail-mimeDecode
<==大変便利です ○ profile2○ feeds○ feeds_profile2
Organic groupsモジュールの環境設定● admin/config/group画面
○ OG mailinglist以外はデフォルト設定で
OK?
● アカウント○ GroupMembershipフィールドの設定
● 右のモジュールのみONにしている
22
OG Mailinglistのセットアップ(1)
24
● 本文の最大サイズ(デフォルト: 100K)● 1時間あたりの最大投稿数 (デフォルト
20件)● スレッド化に In-Reply-Toヘッダを用いる● 投稿者自身にもメールを送信
などを設定する
OG Mailinglistのセットアップ(2)
25
● デフォルトのコンテントタイプとテキスト形式
● 添付ファイルのフィールド名● Mailgunの情報● メールサーバのドメイン名
などを設定する
最後の仕上げ
30
● Real Nameモジュール○ ユーザのidではなく「氏名」を表示するため○ 多分同窓会掲示板特有の要件であろう
● Theme○ MAYOが色々カスタマイズできて便利
● 日付表示カスタマイズ○ 「Y/n/j(D) - H:i」書式を全面的に使用
● Save Draftモジュール○ WordPressでは標準の下書保存機能
● Node Edit Protection○ 投稿の保存ミスを防ぐ
注意事項・課題
● MAYOのテーマを使うとコメントの日付が正しく表示されずに@datetimeのまま
● メール投稿された記事をWebのHTMLエディタで編集しようとすると改行コードがなくなってしまう○ CKEditorとテキストフォーマットフィルタリングの関連?○ HTML記事を書きたい人は最初からWebで
● 画像・添付ファイル付きのメール投稿はメーラーに依存してできたりできなかったり。Gmailとの相性は良いが。=>いっそのこと添付付きはエラーとする?
31
最終目標へ向けて
● ユーザーのフィールドに現在スプレッドシートで管理しているもろもろの項目を追加する○ これでユーザー自身がメールアドレスに加えて自分の住所や
電話番号の変更ができる○ 一覧表のビューを作成し常に最新の名簿を提供する
○ 一応名簿ビューはできたが他のユーザの項目参照がができた
りできなかったり???
● 現在のWordPress掲示板のコンテンツを移行する○ https://www.drupal.org/project/wordpress_migrate
で可能な限り以降○ 最悪はコピペでも良いが・・・・
32
My Troubles (勉強になりました)
33
● Mailgunでのメール受信○ modules/og_mailinglist_mailgun/readme.txtを見つけ
るのに手間取った
● CKEditor ○ Librariesを使うとPHPMailerでエラーになった
● Panelの作成は慎重に!○ ViewとView Panesを間違った
● 短縮URLを知らなかった○ Mailgunと繋がらなかった
参考資料・教材(未完も含む)
● Udemy(https://www.udemy.com/courses/)○ DRUPAL 7 – Beginners to Advanced
https://www.udemy.com/drupal-7/● Packt Publishing(https://www.packtpub.com/)
○ Drupal 7 Module Development [Video]● OSTraining(https://www.ostraining.com/)
○ Drupal Videoshttps://www.ostraining.com/courses/categories/drupal/この中”Organic Groups Version 2”が参考になった
34