FC2ブログ

ブロックチェーン関連の記事紹介まとめ(2019年2月:#32-59)

どうも、ぺろりんです。

ブロックチェーンや暗号資産(仮想通貨)関連の記事や論文などのデイリー紹介ツイート、2か月目のまとめです!
ご興味ある記事があれば、ぜひ元記事も読んでみてください!

<< 2019年1月:#1-31
2019年3月:#60-90 >>


記事紹介まとめ(2019年2月:#32-59)

























































テーマ : ビジネスアイディア
ジャンル : ビジネス

Keyword : ブロックチェーン 仮想通貨 イーサリアム Ethereum 暗号資産 リップル blockchain

Money Tap (マネータップ) を導入してみた

どうも、ぺろりんです。

毎日やってる記事紹介ツイートでもご紹介したMoney Tap (マネータップ) 、以前から気になっていたのでインストールしてみました!




ツイートにも書いたように、要するに「口座振込がスマートにできるようになるアプリ」です。

PayPayなどが流行っていて今さら感ある中、はりきってインストールしてみたので、触ってみた感じなどをレビューしてみます!
導入の方法から書いていますので、使ってみようと思う方はぜひご参考ください。


Money Tap (マネータップ) 導入前の準備


利用要件の確認


公式ページのFAQに、以下のような利用要件が記載されているのでご注意ください。

・対応金融機関の口座(インターネットバンキング登録済み)
・SMSが使用できる電話番号
・eメールアドレス
・スマートフォン(動作環境は以下の通り)

[ iOS ]
iOS ver.10.0以上
iPhone5s以降の機種に対応
Touch IDもしくはFace IDが登録されていること

[ Android ]
Android ver.6.0以上
生体認証の利用を推奨




Touch ID の登録


私の場合、Touch IDを登録しておらず怒られたので、まずはこれの登録をしてきます。


[設定]>[Touch ID とパスコード]を開き(途中でパスコードの入力画面が入るかも)、[指紋を追加]を選びます。




「指でタッチ」と書いた画面が出てくるので、指示に合わせてホームボタンに指を付けたり離したりして指紋を登録します。


念のため、複数の指で指紋登録しておいた方が良いかも知れません。

ひとまずTouch ID の登録はこれでOKです!


Money Tap (マネータップ) のインストールと初期設定


インストール


まずは公式サイト経由でアプリをインストールします。



しばらくするとホーム画面にMoney Tap のアイコンが表示されるので、これでインストール完了です!



サインアップ


インストールができたので、次は初期設定していきましょう。

さきほどホーム画面にできたアプリのアイコンを開き、[サインアップ]を選択します。(Touch IDを要求されたら、指紋登録した指をホームボタンに当てて認証してください)


「利用規約・プライバシーポリシー」に同意できたら「利用規約・プライバシーポリシーに同意します」にチェックし、[次へ]をタップします。


次の画面でユーザー情報などをひと通り入力して、[確認]をタップします。


ちなみに、[電話番号による振込を許可]は後からでも設定できるようだったので、私はひとまずOFFにしておきました。(設定箇所は後述します)


入力情報の確認画面を終えると、SMSとメールで認証コードが送られてきます。

SMS


メール


送られてきた認証コードをそれぞれ入力して、サインアップ完了です。




銀行口座の登録


サインアップの完了画面で[利用開始]をタップすると、銀行口座の登録画面が出てきます。


たとえば「りそな銀行」を選んで進んでみると、りそな銀行のネットバンキングのページに飛ばされます。



記載内容を読んで同意し、[許可する]を選択してやると連携が完了します。
[他社サービスへ戻る]をタップすると、Money Tap のアプリに戻り、登録できたことを確認できます。




登録後、Money Tap のホーム画面にはこんな感じで登録口座が表示されます。


これで口座登録完了です!


Money Tap (マネータップ) アプリの操作感


一人で遊んでるのと、手ごろな連携講座がないので送金チェックまではできませんでしたが、アプリUIの触り心地くらいはレビューしておこうと思います!


QRコードの表示


アプリのホーム画面で[QRコード表示]をタップしてやると、受け取り用っぽいQRコードが出てきます。



他のMoney Tap ユーザーからは、このQRコード読み取りによって自分の登録口座に振り込んでもらえるのかな。


自分からの振込


自分が振込したいときは、アプリのホーム画面にある[¥](円マーク)をタップするとメニューが出てきます。



このメニューはホーム画面の受け取り口座を上にスワイプしても出せます。


振込メニューは以下の5通りです。
(1)登録口座
(2)自分の口座
(3)電話番号
(4)QR読取
(5)口座番号

この先は、手ごろな振込先ができたらまたレビューするかも(?)


設定変更


左上の[≡]をタップすると設定メニューがでてきます。


登録した名前をタップするとアカウント情報が表示されます。


アカウント情報の下の方に、サインアップ時に出てきた[電話番号による振込を許可]の設定項目がありました。



まとめ


手ごろな口座が1つしかなかったので実際の振込を試してみることができませんでしたが、だいたいの雰囲気くらいは伝わりました……?

アプリのUIとしては、個人的には結構使いやすく感じました。

あとはアプリのレビューにもありましたが、

対応する金融機関を増やして!!!!!

ということに尽きますw

テーマ : 仮想通貨
ジャンル : 株式・投資・マネー

Keyword : ブロックチェーン 仮想通貨 リップル Ripple blockcahin 暗号資産 SBIバーチャル・カレンシーズ

コントラクトの継承と連携(他のコントラクトのメソッド実行)

どうも、ぺろりんです。

「はじめてのブロックチェーン・アプリケーション Ethereumによるスマートコントラクト開発入門 (DEV Engineer's Books)」をテキストとして使った勉強のつづきです。(前回の記事はこちら

実を言うと今回はChapter 4の「会員管理」(これは次の記事へ)をやりたかったんですが、以前サラッと流し読みしたところがソースコードに出てきて詰まりましたw
というわけで、今回はChapter 3の「コントラクトの継承」と「他のコントラクトのメソッドを実行」というセクションに戻って理解を深めようと思います。

ここで私が理解したいのは「(1つのソースコードに)2つ以上のコントラクトが書いてあるときの動き」です。
これを「コントラクトの継承」と、「他のコントラクトのメソッドを実行」という2つの切り口から調べていきます。(テキストを参照しつつ)


前提知識

お恥ずかしながらオブジェクト指向言語の理解が浅くて、まず単語でつまずきましたw

なので、このへんからちゃんと理解しておこうかと思います。


「クラス」、「インスタンス」とは?

「クラス」は“鋳型”とか“設計図”にあたるもので、これをもとに作られた“実体”が「インスタンス」です。


「メソッド」とは?

実質的には関数だったりしますが、関数とは別の概念です。

オブジェクト指向では
・属性(どんなもの?)…a,b,cという性質を持つ
・操作(何ができる?)…X,Yという動作ができる
をひとまとめにした(a,b,c,X,Y)を1つの「オブジェクト」と考えます。

オブジェクトができる「操作」のことを「メソッド」と呼びます。

ちなみに、
〈オブジェクト〉.〈オブジェクト内の変数や関数名〉

と書くことで、〈オブジェクト〉内で定義された属性や操作を呼び出せます。


「継承」、「オーバーライド」とは?

オブジェクト指向では、親子関係をつけたクラスを定義することができます。

何がうれしいかと言うと、たとえば2つのクラスAとBを定義するときに、AとBには共通の性質Pがあったとします。

「性質Pを持った親クラスX」を作ってAとBをXの子クラスとすれば、子クラスは親クラスの性質を引き継ぐため、AとBの中で共通の性質Pを定義する必要がなくなります。

この「子クラスは親クラスの性質を引き継ぐ」性質を「継承」と呼びます。

子クラスの中で、継承した親クラスの変数などを上書きするのが「オーバーライド」です。

ここまでがオブジェクト指向についての前提知識です。
このへんの理解をちゃんとしておかないと分からない!(私だけか……?w)


「コントラクト」、「デプロイ」とは?

オブジェクト指向の言葉はすこし分かった気がしますが、今度はイーサリアムの言葉の理解も浅いことに気付きましたw
まだいまいち「コントラクト」と「デプロイ」のイメージがつかめてなかったので、これらも調べてみました。

ここまでオブジェクト指向の言葉を復習しておくと、以下のような理解ができるようです。
ブロックチェーンEthereum入門 3(NTTデータ先端技術株式会社)より)

オブジェクト指向言語との対比ではコントラクトのソースコードはクラスであり、デプロイはインスタンス化すること



(参考)
“たい焼き”であま~く理解するJava文法と言語仕様 (1/2)(@IT)
【PHP超入門】クラス~例外処理~PDOの基礎(Qiita)
Javaでインスタンスを使う方法【初心者向け】(TECHACADEMYmagazine)
メソッド (method)とは(「分かりそう」で「分からない」でも「分かった」気になれるIT用語辞典)
ブロックチェーンEthereum入門 3(NTTデータ先端技術株式会社)


コントラクトの継承

さて、ここまでの前提知識をもとに、「はじめてのブロックチェーン・アプリケーション Ethereumによるスマートコントラクト開発入門 (DEV Engineer's Books)」へ戻ってきます。

コンパイラのバージョンをソースに合わせつつ、サンプルコードをコンパイルします。



このサンプルコードの概要としては以下のようなものです。
・1つのソースコードの中に
  ①コントラクトA
  ②AのサブコントラクトB
  ③コントラクトC
 という3つのコントラクトが書いてある。
・コントラクトCの中で、AとBをデプロイしている(「new」コマンドを使うことでデプロイできる)。

このサンプルコードで、コントラクトの継承について動きを見ていきます。

初心者の私としては、はじめは素朴に「上に書いてるAから順にSolidityでデプロイしていくべきなのかな?」と考えました。

しかしよく考えてみると、コントラクトCの中でAとBのインスタンスを作っている(デプロイしている)ので、コントラクトCだけデプロイすれば事足りるのでは?

……と思って、コントラクトCのみデプロイすることを試してみました。
Cだけ選んで、EnvironmentをJavaScript VMにしつつデプロイしてみます。



できたのはCだけです。


この状態で「c」と「getData」を押してみても初期状態という感じです。



ソースコードの中で、コントラクトAとBのインスタンスを作っている(中でnewしている)関数「makeContract」を押してみます。
この後ふただび「c」と「getData」を押してみると、値を拾っています。


今度は、はじめに考えていた通り、A、B、Cの順にすべてデプロイしてみました。



この状態で、青いボタンだけ押してみます。

特に何も値は入っていません。



ちなみにここで、BはAを継承しているため、Bの中では定義されていない「setA」と「a」のボタンがBのところにもあります。

ためしに、Aのところで
a=15
と設定して「setA」を実行してみます。


この直後にA、B、Cで青いボタンを押してみます。
すると、Aの「a」と「getData」の値のみ変わりました。



次に、Bのところで
a=20
と設定して「setA」を実行してみます。


この直後にもA、B、Cで青いボタンを押してみると、今度はBの「a」と「getData」の値のみ変わりました。



Aの中に定義された「a」をBの中でも定義していますが、これは別に、BがAの中で定義した「a」の値を参照する動きにはなっていないようです。

この時点でCの「makeContract」をするとどうなるでしょうか?
これを実行しつつ、Cの中の「c」と「getData」を押してみます。


Cの中ではあくまで
a=1
としてAとBのインスタンスを作成して計算しているので、先ほどAやBの中で設定した「a」とは関係なくCの中で計算されていることがわかります。

ちなみに、Cで「makeContract」した後も、AとBの中にある「a」と「getData」は変わっていませんでした。


どうやら、以下のようなことが言えるようです。
・AとBのインスタンスを中で作っているCだけデプロイすれば、AとBをデプロイしなくてもCは結果を出せる。
・A、B、Cをそれぞれデプロイすると、それぞれは独立に動く(設定した「a」の値は、あくまで各A、B、C内でのみ使われる)。

ちなみに、「new」コマンドを消して、Cの中でインスタンスを作らずAやBを呼んでみる……みたいなことを試したかったのですが、そもそもコンパイルできるコードにできず断念しましたw


他のコントラクトのメソッドを実行

次に、他のコントラクトのメソッドを実行するサンプルコードをコンパイルしてみます。


コードの概要としては、以下のようなものです。
・1つのコードに
  ①コントラクトA
  ②コントラクトB
 の2つが書いてある。
・コントラクトBの中で「コントラクトA」や「Aの中で定義した変数」を呼ぶけど、Aの“インスタンス化”(newコマンド)はやらない。

先ほどの「継承」ではコントラクトCの中でAとBをインスタンス化していたので、CだけデプロイすればAやBの中にあるデータを拾ってきました。

しかし今回はコントラクトBの中でAのインスタンス化はしていないので、おそらくBだけデプロイしても「Bで呼んでいる、Aの中で定義した変数」の値は拾えないでしょう……という想定のもと、まずはBだけデプロイしてみます。



ためしにBだけデプロイした状態で青いボタンだけ押してみると、どれも初期状態です。
(というかコントラクトAをデプロイしていないので、そもそもコントラクトAのアドレスを入れなさいという場所に何も入れられない……)


次に、Aもデプロイしてみます。



さて、Aのアドレスを入れて「setA」を押してから、Bの青いボタンを押してみます。



めでたく値を拾うことができました。

コントラクトAをデプロイしたときのアドレスを使うことでAとBが紐づいて、BからAの中で定義された変数の値を呼び出すことができました。

コントラクトBで定義されているsetA(A _a)の中では、setA(A _a)の引数として与えられたAのアドレス_aを
a = A(_a)

というようにセットします。

aNum()はa.num()を返すことで(numはコントラクトAの中で定義された状態変数)、Aで定義されたnumの値を返します。

〈オブジェクト〉.〈オブジェクト内の変数や関数名〉

とすることで〈オブジェクト〉内で定義された変数や関数が呼び出せることを思い出すと、「a = A(_a)」は「オブジェクト」になっているようです。

つまり、コントラクト名の引数にそのコントラクトのデプロイアドレスを指定したら「オブジェクト」化(もしくはインスタンス化)されるようです。

(参考)
インスタンスの考え方・クラス型変数・コンストラクタ・静的メンバ(Qiita)
【基本の基本】Javaのデータ型とは?と簡単な使い方まとめ(エンジニアの入り口)
Ethereum 外部コントラクトの呼び出し方法(Remix, MetaMask連携)(Qiita)


まとめ

オブジェクト指向言語に慣れている方だとそんなに困らないのかも知れませんが、私は慣れておらず詰まりながらいくつか試してみましたw
オブジェクト指向言語の本も手元に置いておく方が良さそうだなぁ。。

今回触ってみて、個人的には以下のような理解が得られました。
・1つのコード内に複数のコントラクトが含まれるとき、
 ①あるコントラクトXの中で別のコントラクトYをデプロイしているならば、XをデプロイすればYのデプロイは不要。
 ②それぞれのコントラクトを別々にデプロイすると、各々が独立して動く。
・コントラクトZの引数にそのコントラクトZのデプロイアドレスWを指定したZ(W)は「オブジェクト」化(インスタンス化)される。

デプロイアドレスがJavaなどで何にあたるのか分からないのですが、デプロイアドレスを引数に指定するとオブジェクト化するというのが分かったような分からないような……w

次ははりきって「会員管理」のところをやりますw

では今回はこのへんで~(´・ω・`)

テーマ : プログラミング
ジャンル : コンピュータ

Keyword : ブロックチェーン blockcahin 仮想通貨 暗号資産 イーサリアム Ethereum Solidity

ブロックチェーン関連の記事紹介まとめ(2019年1月:#1-31)

どうも、ぺろりんです。

ブロックチェーンや暗号資産(仮想通貨)関連の記事や論文などについて、Twitterで1日1つ紹介&コメントをつぶやく試みを2019年1月1日から始めてみました!
増えてくると見づらいと思うので、1か月ごとにツイートをこのブログにまとめていこうかと思います。

2019年2月:#32-59 >>


記事紹介まとめ(2019年1月:#1-31)

































































テーマ : ビジネスアイディア
ジャンル : ビジネス

Keyword : ブロックチェーン blockcahin 仮想通貨 暗号資産 イーサリアム リップル

仮想通貨も相談無料!低コストでトラブル解決できる金融ADR制度とは?

どうも、ぺろりんです。

2018年11月21日から日本仮想通貨交換業協会(JVCEA)紛争解決センターが「仮想通貨交換業務に関する利用者からの申立による紛争解決(ADR)」について協定を締結しました。

これは金融庁の資料にある「仮想通貨交換業に関する自主規制の概要について」に記載された苦情処理・紛争解決に関する要請に基づくものかと思われます。

ちゃんと知っておいた方が良さそうなので、この「金融ADR」なる制度について
1.どんなものか?
2.どうやって使うのか?
3.いくらくらいかかるのか?
という観点から調べてみました。

間違いなどありましたら、ぜひメールフォームからご指摘いただけると助かります。


1.金融ADRってどんなもの?

そもそもADRって?

「ADR」は「Alternative Dispute Resolution(代替的紛争解決手続、裁判外紛争解決手続)」の略で、トラブルが当事者間で解決できない場合に、当事者以外の第三者に入ってもらいつつ、裁判せずに解決を図る仕組みです。

訴訟を起こす場合に比べて
(1)手続きが簡便
(2)解決時間が短い
(3)当事者による解決が重視される
(4)低コスト
(5)非公開
という特徴があるようです。


じゃあ、金融ADRって?

金融機関相手のADRで、第三者として金融の専門家が中立・公正な立場で関与してくれます。


(金融)ADRのメリットとデメリット

では、(金融)ADRのメリットとデメリットはどんなものでしょうか?
調べてみた感じだと、以下のような点が挙げられるようです。

〈メリット〉
(1)裁判に比べて手続きが簡単
(2)裁判に比べて解決が迅速
(3)裁判に比べて低コスト
(4)中立・公正な専門家による和解案が得られる

また、「金融機関は、金融ADR機関から提示された和解案を原則受け入れ」というのも利用者からするとメリットになるかと思われます。

〈デメリット〉
(1)裁判に比べて結論の厳密性に欠ける(手続きの簡便性、解決の迅速性を求めるため)
(2)裁判に比べて、かえって解決が長引く可能性もある
(3)被害者に極端に有利とはならない
(4)「あっせん」の場合に解決案に拘束力がない(金融ADRの場合、上記のように金融機関側には拘束力がありそうです)
(5)認知度が低い

消費者金融などの利用者が払い過ぎた金利(過払い金)の返済請求は「債務整理」の扱いになるため、原則としてADRの対象にはならない」というのも、(暗号資産関連で起こるかはわかりませんが)デメリットかも知れません。

だいたいこんな感じでしょうか。


いつ利用するの?

当事者間(取引所とその利用者など)で、トラブルを解決できない場合に利用します。

今回は仮想通貨関連の利用シーンに絞りますと、日本仮想通貨交換業協会によれば、当事者間で協議して解決できない以下のような場合が想定されています。
・ (日本仮想通貨交換業協会の)会員による説明では納得できない場合
・ 苦情の処理によらずに金融ADRによる解決を求める場合
・ 苦情の申し出から3か月以上にわたり苦情の解決が図られていない場合

原則これらの場合について、「あっせん」および「仲裁」がここで利用できる金融ADRの内容となります。
上記以外の場合についても、まずは紛争解決センター・仲裁センターにご相談ください。

ただし「「苦情処理及び紛争解決に関する規則」に関する細則」によると、以下の場合は対象外となります。

(1)取引の名義が、当該申出人本人でない場合(ただし、規則第3条ただし書き該当する場合は除く。)
(2)苦情の原因である取引の日から3年が経過している場合
(3)当該苦情に係る訴訟が終了若しくは訴訟中、又は民事調停が終了若しくは民事調停中のものである場合
(4)弁護士会のあっせん・仲介手続きが終了又は手続中の場合
(5)会員の経営方針や販売態度又は会員従業員個人に係る事項など、事柄の性質上、紛争解決支援機関の利用が適当でないと認められる場合
(6)不当な目的で又はみだりに苦情の申し出をしたと認められる場合

(参考)
紛争解決について(日本仮想通貨交換業協会)
苦情処理及び紛争解決に関する規則(日本仮想通貨交換業協会)
「苦情処理及び紛争解決に関する規則」に関する細則(日本仮想通貨交換業協会)
紛争解決センター(ADR)(日本弁護士連合会)
ADRとは?(公益社団法人 民間総合調停センター)
裁判外紛争解決手続(Wikipedia)
金融ADR制度(金融分野における裁判外紛争解決制度)(金融庁)
金融機関との間でトラブルをかかえている利用者の皆様へ(金融庁)
金融ADRの現状と問題点(J-STAGE)
金融ADRの活用と利点と難点(朝雲法律事務所)
金融ADRとは、メリットとデメリット(ダブル平均法で株式投資)
ADR(裁判外紛争解決手続)の現状と課題(大阪地方裁判所・大阪家庭裁判所 )
ADR(仲裁)(第一東京弁護士会)


2.金融ADRはどうやって使うの?

金融ADR利用の流れ

日本仮想通貨交換業協会のページに参考資料として挙げられている金融ADR利用案内リーフレットによれば、トラブル発生後、金融機関の利用者が金融ADR利用までは以下の流れだそうです。(★をつけたのが、利用者が動く必要のある部分です)

STEP1:紛争の発生からADRの申立
(1)利用者と金融機関の間でトラブル発生
(2)利用者から弁護士会に金融ADRの申立(★)
(3)弁護士会から金融機関に手続きへの参加要請

STEP2:期日の開催と手続き
(4)利用者と金融機関からあっせん人へ主張&資料提出(★)
(5)あっせん人から金融機関へ提出要請(場合によっては★)
(6)利用者と金融機関の和解あっせん(★)

STEP3:紛争解決
(7)和解成立(トラブル解決)(★)

(参考)
早くて安心、弁護士会の紛争解決 金融ADR(第二東京弁護士会)
ADR(仲裁)(第一東京弁護士会)


申立の方法

申立は、東京三弁護士会の窓口に申立書や関係書類(このリンク先に、提出書類のチェックリストもあります)を提出すれば良いようです。
センター利用確認書」を提出することにより、日本仮想通貨交換業協会から取次ぎもできるそうです。

取引所会社でも、窓口についてたとえば以下で言及されています。
金融ADR制度について(GMOコイン)
金融ADR制度について(フィスコ仮想通貨取引所)
金融ADR制度について(みんなのビットコイン)
Coincheck 仮想通貨取引説明書(コインチェック)

(参考)
紛争解決について(日本仮想通貨交換業協会)
早くて安心、弁護士会の紛争解決 金融ADR(第二東京弁護士会)
金融トラブル、費用をかけずに早期解決!金融ADR制度をご利用ください(政府広報オンライン)


3.利用料はおいくら?

申立、話し合いについて金融機関の利用者は無料です。
これらの費用は金融ADRとして原則金融機関の負担となっていて、日本仮想通貨交換業協会の会員については明確に申立手数料と期日手数料について会員(金融機関側)負担と記載されています。

費用がかかるのは、あっせん・仲裁が成立した場合です。
日本仮想通貨交換業協会HPによると、手数料は以下の割合を申立人(金融機関の利用者)と相手方(金融機関)で分担します。


(参考)
紛争解決について(日本仮想通貨交換業協会)
苦情処理及び紛争解決に関する規則(日本仮想通貨交換業協会)
「苦情処理及び紛争解決に関する規則」に関する細則(日本仮想通貨交換業協会)
早くて安心、弁護士会の紛争解決 金融ADR(第二東京弁護士会)
金融商品取引法(e-Gov)


まとめ

詳細は本文を参照していただきたいのですが、「金融ADR」は
1.どんなものか?
2.どうやって使うのか?
3.いくらくらいかかるのか?
という3つの観点について、今回調べた結果から以下のようなものだと分かりました。

1.当事者間でトラブルが解決できない場合に、裁判に比べて低コストかつ短期間で第三者を交えて解決しようという制度。
2.日本仮想通貨交換業協会経由または東京三弁護士会の「紛争解決センター・仲裁センター」に直接書類を提出。
3.申立と相談までは無料で、あっせん・仲裁が成立したときに手数料が発生。

規則などを読み込むのはなかなか労力が必要かと思います。
困ったときには、こういう制度があることを念頭に置きつつ、日本仮想通貨交換業協会各センターに相談するのが良さそうです。

利用する機会に出会いたくはないですが(笑)、こういう制度があって、内容や手続きなどについて理解しておくのは有用だと思います。
制度自体の認知や理解が今後ちゃんと広まると良いなと思いつつ、今回はこのへんで。

テーマ : 仮想通貨
ジャンル : 株式・投資・マネー

Keyword : ブロックチェーン 仮想通貨 暗号資産 日本仮想通貨交換業協会 金融庁 金融ADR 仮想通貨取引所

検索フォーム
RSSリンクの表示
リンク
ブロとも申請フォーム

この人とブロともになる

QRコード
QR
メールフォーム

名前:
メール:
件名:
本文: