W_HOME = /usr/local/majordomo-$(VERSION)
# vipw <--- パスワードを編集
- - - -
majordom:*:69:69::0:0:Majordomo Owner:/usr/local/majordomo-1.94.4:/bin/sh
- - - -
# finger majordom <--- 確認
Login: majordom Name: Majordomo Owner
Directory: /usr/local/majordomo-1.94.4 Shell: /bin/sh
Never logged in.
No Mail.
No Plan.
#
# vi /etc/group <--- viで編集
- - - -
majordom:*:69:majordom
- - - -
PERL = /usr/local/bin/perl5.003
...
CC = gcc
...
W_HOME = /usr/local/majordomo-$(VERSION)
...
W_USER = 69
W_GROUP = 69
...
W_PATH = /bin:/usr/bin:/usr/local/bin
...
TMPDIR = /var/tmp
% cp sample.cf majordomo.cf
% vi majordomo.cf
$whereami = "srv.foo.bar"; <--- 正式なドメイン名を入れる
...
if ( defined $ENV{"HOME"}) {
$homedir = $ENV{"HOME"};
} else {
$homedir = ":/usr/local/majordomo-1.94.4"; <--- ホームディレクトリが無くてもこれになる
}
...
$digest_work_dir = "/usr/local/majordomo-1.94.4/mail/digest";
...
$sendmail_command = "/usr/sbin/sendmail"; <--- 環境に合わせて編集
...
$TMPDIR = "/var/tmp"; <--- 環境に合わせて編集
# make wrapper
gcc -DBIN=\"/usr/local/majordomo-1.94.4\" -DPATH=\"PATH=/bin:/usr/bin:/usr/loca
l/bin\" -DHOME=\"HOME=/usr/local/majordomo-1.94.4\" -DSHELL=\"SHELL=/bin/sh\"
-DMAJORDOMO_CF=\"MAJORDOMO_CF=/usr/local/majordomo-1.94.4/majordomo.cf\" -
DPOSIX_UID=69 -DPOSIX_GID=69 -o wrapper wrapper.c
# make install
Testing for perl (/usr/local/bin/perl5.003)...
Configuring scripts...
./install.sh -m 751 -O 69 -g 69 . /usr/local/majordomo-1.94.4
./install.sh -m 755 -O 69 -g 69 . /usr/local/majordomo-1.94.4/bin
Copying tools to /usr/local/majordomo-1.94.4/bin
Copying Majordomo files to /usr/local/majordomo-1.94.4
Copying archiving and other tools to /usr/local/majordomo-1.94.4/Tools
./install.sh -m 755 -O 69 -g 69 . /usr/local/majordomo-1.94.4/Tools
Using installed majordomo.cf
Installing manual pages in /usr/local/majordomo-1.94.4/man
To finish the installation, 'su' to root and type:
make install-wrapper
If not installing the wrapper, type
cd /usr/local/majordomo-1.94.4; ./wrapper config-test
(no 'su' necessary) to verify the installation.
# make install-wrapper
./install.sh -o root -g 69 -m 4755 wrapper /usr/local/majordomo-1.94.4/wrapper
To verify that all the permissions and etc are correct,
run the command
cd /usr/local/majordomo-1.94.4; ./wrapper config-test
# cd /usr/local/majordomo-1.94.4
# ./wrapper config-test
------------------------------------------------------------
---------------- Config-test for Majordomo ----------------
------------------------------------------------------------
--------------------- Obvious things: ---------------------
------------------ environment variables ------------------
HOME=/usr/local/majordomo-1.94.4
LOGNAME=sugasawa
MAJORDOMO_CF=/usr/local/majordomo-1.94.4/majordomo.cf
PATH=/bin:/usr/bin:/usr/local/bin
SHELL=/bin/sh
USER=sugasawa
--------------------- euid/egid checks ---------------------
effective user = majordom (uid 69)
effective group = majordom guest staff operator tty sys kmem wheel majordom (
gid 69 31 20 5 4 3 2 0 69 )
---------------------- uid/gid checks ----------------------
real user = majordom (uid 69)
real group = majordom guest staff operator tty sys kmem wheel majordom (
gid 69 31 20 5 4 3 2 0 69 )
------------------------------------------------------------
Non obvious things that cause headaches:
------------------------------------------------------------
Good: 'require'd /usr/local/majordomo-1.94.4/majordomo.cf okay.
Good: found ctime.pl okay.
Good: found majordomo_version.pl okay.
Good: found majordomo.pl okay.
Good: found shlock.pl okay.
Good: found config_parse.pl okay.
You're running Majordomo Version 1.94.4.
--==> Majordomo home directory is /usr/local/majordomo-1.94.4.
------------------- Include directories -------------------
/usr/local/majordomo-1.94.4
/usr/local/lib/perl5/i386-freebsd/5.003
/usr/local/lib/perl5
/usr/local/lib/perl5/site_perl/i386-freebsd
/usr/local/lib/perl5/site_perl
.
--------------------------- Home ---------------------------
Good: changedir to /usr/local/majordomo-1.94.4 succeeded.
Good: Created a mock lock file.
---------------------- temp directory ----------------------
Good: Created a temp file in $TMPDIR (/var/tmp).
---------------------- list directory ----------------------
Hmmm, list directory /usr/local/majordomo-1.94.4/lists doesn't exist
or isn't a directory.
Let me try to make it for you...
Good: list directory /usr/local/majordomo-1.94.4/lists created.
--------------------------- log ---------------------------
Logfile /usr/local/majordomo-1.94.4/Log didn't exist, trying to create...
okay, now chmod'ing..
Good: logfile /usr/local/majordomo-1.94.4/Log exists and is writeable.
------------------------- Mailers -------------------------
You have defined a mailer for delivery.
Attempting to verify that this is a valid mailer...looks okay.
You have defined a mailer for delivering administrative messages.
Attempting to verify that this is a valid mailer...looks okay.
------------------ Checking majordomo.cf ------------------
Checking to see if there are new variables that should be in
your majordomo.cf file...Nope, none that I see.
Have you configured where Majordomo is?
$whereami is srv.foo.bar
Good: yup!
----------------------- end of tests -----------------------
Nothing bad found! Majordomo _should_ work correctly.
If it doesn't, check your configuration file
(/usr/local/majordomo-1.94.4/majordomo.cf)
closely, and if it still looks okay, consider asking the majordomo-users
mailing list at "majordomo-users@greatcircle.com" for assistance. Be sure
and fully specify what your problems are, and what type of machine (and
operating system) you are using.
Enjoy!
I see you haven't registered this version of Majordomo.
By registering, you will be notified of patches and further releases
of Majordomo. Shall I send email to majordomo-registration@greatcircle.com
to register this version? (I'll cc Majordomo-Owner@srv.foo.bar)
[yes] no
Ooooh, like to live dangerously, eh?!
#
# vi /etc/aliases
以下内容を追加する。
# Majordomo
majordomo: "|/usr/local/majordomo-1.94.4/wrapper majordomo"
owner-majordomo: sugasawa
majordomo-owner: sugasawa
...
# newaliases <--- メールエイリアスのデータベースを再構築する
# su majordom
$ cd ~/lists
$ pwd
/usr/local/majordomo-1.94.4/lists
$ touch test
適当なユーザ(自分自身に戻って)確認のメールを送ってみる。
% echo 'lists' | mail majordomo
% mail
Mail version 8.1 6/6/93. Type ? for help.
"/var/mail/sugasawa": 1 message 1 new
>N 1 Majordomo@srv.sugaho Sat Mar 13 22:09 22/680 "Majordomo results"
&
Message 1:
From Majordomo-Owner@srv.foo.bar Sat Mar 13 22:09:00 1999
Date: Sat, 13 Mar 1999 22:08:58 +0900 (JST)
To: sugasawa
From: Majordomo@srv.foo.bar
Subject: Majordomo results
--
>>>> lists
Majordomo@srv.foo.bar serves the following lists:
test
Use the 'info ' command to get more information
about a specific list.
&
# touch /usr/local/majordomo-1.94.4/lists/sample
# chown majordom /usr/local/majordomo-1.94.4/lists/sample*
# chgrp majordom /usr/local/majordomo-1.94.4/lists/sample*
# chown majordom /usr/local/majordomo-1.94.4/lists/sample*
# vi /usr/local/majordomo-1.94.4/lists/sample <--- 初期ユーザがいれば編集OK
# chmod 664 sample
# vi /usr/local/majordomo-1.94.4/lists/sample.info <--- MLのインフォメーション
SAMPLE ML
This is SAMPLE ML Infomation.
# vi /usr/local/majordomo-1.94.4/lists/sample.intro <--- 登録者への最初の説明
Hello! SAMPLE ML
# vi /usr/local/majordomo-1.94.4/lists/sample.passwd <--- 管理者用のパスワード
samplepasswd
# chmod 600 /usr/local/majordomo-1.94.4/lists/sample.passwd
# chown majordom /usr/local/majordomo-1.94.4/lists/sample*
# chgrp majordom /usr/local/majordomo-1.94.4/lists/sample*
# vi /etc/aliases
...
sample: :include:/usr/local/majordomo-1.94.4/lists/sample
sample-request: "|/usr/local/majordomo-1.94.4/wrapper majordomo -l sample"
owner-sample: sugasawa
owner-sample-request: owner-sample
sample-approval: owner-sample
...
# newaliases
Majordomoが動作時にエラーとならないようにdaemonをgroupに加えておく
# vi group
...
majordom:*:69:majordom,daemon
% echo 'lists' | mail majordomo
% mail
Mail version 8.1 6/6/93. Type ? for help.
"/var/mail/sugasawa": 1 message 1 new
>N 1 Majordomo@srv.sugaho Sun Mar 14 23:08 23/707 "Majordomo results"
& 1
Message 1:
From Majordomo-Owner@srv.foo.bar Sun Mar 14 23:08:52 1999
Date: Sun, 14 Mar 1999 23:08:50 +0900 (JST)
To: sugasawa
From: Majordomo@srv.foo.bar
Subject: Majordomo results
--
>>>> lists
Majordomo@srv.foo.bar serves the following lists:
sample
test
Use the 'info ' command to get more information
about a specific list.
$ echo 'who sample' | mail majordomo
$ mail
Mail version 8.1 6/6/93. Type ? for help.
"/var/mail/sherry": 1 message 1 new
>N 1 Majordomo@srv.sugaho Sun Mar 14 23:14 21/566 "Majordomo results"
& 1
Message 1:
From Majordomo-Owner@srv.foo.bar Sun Mar 14 23:14:16 1999
Date: Sun, 14 Mar 1999 23:14:15 +0900 (JST)
To: sherry
From: Majordomo@srv.foo.bar
Subject: Majordomo results
--
>>>> who sample
Members of list 'sample':
No subscribers
&
$ echo 'subscribe sample sherry@srv.foo.bar' | mail majordomo
$ mail
Mail version 8.1 6/6/93. Type ? for help.
"/var/mail/sherry": 2 messages 2 new
>N 1 Majordomo@srv.sugaho Sun Mar 14 23:24 38/1325 "Confirmation for subs"
N 2 Majordomo@srv.sugaho Sun Mar 14 23:24 42/1599 "Majordomo results"
& 1
Message 1:
From Majordomo-Owner@srv.foo.bar Sun Mar 14 23:24:54 1999
Date: Sun, 14 Mar 1999 23:24:54 +0900 (JST)
To: sherry@srv.foo.bar
From: Majordomo@srv.foo.bar
Subject: Confirmation for subscribe sample
--
Someone (possibly you) has requested that your email address be added
to or deleted from the mailing list "sample@srv.foo.bar".
If you really want this action to be taken, please send the following
commands (exactly as shown) back to "Majordomo@srv.foo.bar":
auth 7d7c4b91 subscribe sample sherry@srv.foo.bar
If you do not want this action to be taken, simply ignore this message
and the request will be disregarded.
If your mailer will not allow you to send the entire command as a single
line, you may split it using backslashes, like so:
auth 7d7c4b91 subscribe sample \
sherry@srv.foo.bar
If you have any questions about the policy of the list owner, please
contact "sample-approval@srv.foo.bar".
Thanks!
Majordomo@srv.foo.bar
& 2
Message 2:
From Majordomo-Owner@srv.foo.bar Sun Mar 14 23:24:55 1999
Date: Sun, 14 Mar 1999 23:24:52 +0900 (JST)
To: sherry
From: Majordomo@srv.foo.bar
Subject: Majordomo results
--
>>>> subscribe sample sherry@srv.foo.bar
**** Your request to Majordomo@srv.foo.bar:
****
**** subscribe sample sherry@srv.foo.bar
****
**** must be authenticated. To accomplish this, another request must be
**** sent in with an authorization key, which has been sent to:
**** sherry@srv.foo.bar
****
**** If the message is not received, there is generally a problem with
**** the address. Before reporting this as a problem, please note the
**** following:
****
**** You only need to give an address to the subscribe command if you want
**** to receive list mail at a different address from where you sent the
**** command. Otherwise you can simply omit it.
****
**** If you do give an address to the subscribe command, it must be a legal
**** address. It should not consist solely of your name. The address must
**** point to a machine that is reachable from the list server.
****
**** If you have any questions about the policy of the list owner, please
**** contact "sample-approval@srv.foo.bar".
****
**** Thanks!
****
**** Majordomo@srv.foo.bar
&
→ 直前に送ったsubscribeへの返答にあるauthの部分を転送する。
% mail majordomo
Subject:
auth 7d7c4b91 subscribe sample sherry@srv.foo.bar
.
EOT
$ mail
Mail version 8.1 6/6/93. Type ? for help.
"/var/mail/sherry": 1 message 1 new
>N 1 Majordomo@srv.sugaho Sun Mar 14 23:27 38/1238 "Majordomo results"
& 1
Message 1:
From Majordomo-Owner@srv.foo.bar Sun Mar 14 23:27:44 1999
Date: Sun, 14 Mar 1999 23:27:42 +0900 (JST)
To: sherry
From: Majordomo@srv.foo.bar
Subject: Majordomo results
--
>>>> auth 7d7c4b91 subscribe sample sherry@srv.foo.bar
Your request to Majordomo@srv.foo.bar:
subscribe sample sherry@srv.foo.bar
has been forwarded to the owner of the "sample" list for approval.
This could be for any of several reasons:
You might have asked to subscribe to a "closed" list, where all new
additions must be approved by the list owner.
You might have asked to subscribe or unsubscribe an address other than
the one that appears in the headers of your mail message.
When the list owner approves your request, you will be notified.
If you have any questions about the policy of the list owner, please
contact "sample-approval@srv.foo.bar".
Thanks!
Majordomo@srv.foo.bar
&
→ 管理者に以下のメールが届くはず。( user sugasawa )
% mail
Mail version 8.1 6/6/93. Type ? for help.
"/var/mail/sugasawa": 1 message 1 new
>N 1 Majordomo@srv.sugaho Sun Mar 14 23:36 30/909 "APPROVE sample"
& 1
Message 1:
From Majordomo-Owner@srv.foo.bar Sun Mar 14 23:36:15 1999
Date: Sun, 14 Mar 1999 23:36:14 +0900 (JST)
To: sample-approval@srv.foo.bar
From: Majordomo@srv.foo.bar
Subject: APPROVE sample
--
Sherry requests that you approve the following:
subscribe sample sherry@srv.foo.bar
If you approve, please send a message such as the following back to
Majordomo@srv.foo.bar (with the appropriate PASSWORD filled in, of course):
approve PASSWORD subscribe sample sherry@srv.foo.bar
If you disapprove, do nothing.
Thanks!
Majordomo@srv.foo.bar
→ 許可する場合には以下内容のメールを送る
% mail majordomo
Subject:
approve samplepasswd subscribe sample sherry@srv.foo.bar
.
EOT
% mail
Mail version 8.1 6/6/93. Type ? for help.
"/var/mail/sugasawa": 2 messages 2 new
>N 1 Majordomo@srv.sugaho Sun Mar 14 23:48 17/586 "Majordomo results"
N 2 Majordomo@srv.sugaho Sun Mar 14 23:48 17/641 "SUBSCRIBE sample sher"
& 1
Message 1:
From Majordomo-Owner@srv.foo.bar Sun Mar 14 23:48:13 1999
Date: Sun, 14 Mar 1999 23:48:10 +0900 (JST)
To: sugasawa
From: Majordomo@srv.foo.bar
Subject: Majordomo results
--
>>>> approve samplepasswd subscribe sample sherry@srv.foo.bar
Succeeded.
& 2
Message 2:
From Majordomo-Owner@srv.foo.bar Sun Mar 14 23:48:13 1999
Date: Sun, 14 Mar 1999 23:48:13 +0900 (JST)
To: sample-approval@srv.foo.bar
From: Majordomo@srv.foo.bar
Subject: SUBSCRIBE sample sherry@srv.foo.bar
--
sherry@srv.foo.bar has been added to sample.
No action is required on your part.
→ 許可されたユーザ ( sherry )には以下内容のメールが届いたはず。
Welcome to the sample mailing list!
Please save this message for future reference. Thank you.
If you ever want to remove yourself from this mailing list,
you can send mail to with the following
command in the body of your email message:
unsubscribe sample
or from another account, besides sherry@srv.foo.bar:
unsubscribe sample sherry@srv.foo.bar
If you ever need to get in contact with the owner of the list,
(if you have trouble unsubscribing, or have questions about the
list itself) send email to .
This is the general rule for most mailing lists when you need
to contact a human.
Hello! SAMPLE ML
$ echo 'who sample' | mail majordomo
$ mail
Mail version 8.1 6/6/93. Type ? for help.
"/var/mail/sherry": 1 message 1 new
>N 1 Majordomo@srv.sugaho Sun Mar 14 23:56 22/588 "Majordomo results"
& 1
Message 1:
From Majordomo-Owner@srv.foo.bar Sun Mar 14 23:56:45 1999
Date: Sun, 14 Mar 1999 23:56:43 +0900 (JST)
To: sherry
From: Majordomo@srv.foo.bar
Subject: Majordomo results
--
>>>> who sample
Members of list 'sample':
sherry@srv.foo.bar <--- 確かに追加されている
1 subscriber
% mail sample@srv.foo.bar
Subject: TEST
TEST from yoko.
.
EOT
→ sherryで受信しているかを確認
$ mail
Mail version 8.1 6/6/93. Type ? for help.
"/var/mail/sherry": 1 message 1 new
>N 1 yoko Mon Mar 15 00:29 12/370 "TEST"
& 1
Message 1:
From sugasawa Mon Mar 15 00:29:04 1999
Date: Mon, 15 Mar 1999 00:29:03 +0900 (JST)
From: YOKO SUGASAWA
To: sample@srv.foo.bar
Subject: TEST
TEST from yoko.
→ 受信OK
# touch /usr/local/majordomo-1.94.4/lists/test2
# chown majordom /usr/local/majordomo-1.94.4/lists/test2
# chgrp majordom /usr/local/majordomo-1.94.4/lists/test2
# vi /usr/local/majordomo-1.94.4/lists/test2 #初期メンバー登録OK
# vi /usr/local/majordomo-1.94.4/lists/test2.info #インフォメーション
# vi /usr/local/majordomo-1.94.4/lists/test2.intro #登録者への最初の説明
# vi /usr/local/majordomo-1.94.4/lists/test2.passwd #管理者用のパスワード
# chmod 600 /usr/local/majordomo-1.94.4/lists/test2.passwd
# chown majordom /usr/local/majordomo-1.94.4/lists/test2* #ownerをmajrdomに
# chgrp majordom /usr/local/majordomo-1.94.4/lists/test2* #groupをmajordomに
# vi /etc/aliases
test2: "|/usr/local/majordomo/wrapper resend -l test2 test2-list"
test2-list: :include:/usr/local/majordomo/lists/test2
test2-request: owner-test2
test2-owner: owner-test2
owner-test2: sugasawa #管理者のメールアドレス
# newaliases #エイリアスの更新
% echo 'subscribe test2' | mail majordomo
% mail
Mail version 8.1 6/6/93. Type ? for help.
"/var/mail/yoko": 2 messages 2 new
>N 1 Majordomo@srv.sugaho Tue Mar 16 23:51 38/1263 "Confirmation for subs"
N 2 Majordomo@srv.sugaho Tue Mar 16 23:51 42/1532 "Majordomo results"
& 1
Message 1:
From Majordomo-Owner@srv.foo.bar Tue Mar 16 23:51:08 1999
Date: Tue, 16 Mar 1999 23:51:08 +0900 (JST)
To: yoko
From: Majordomo@srv.foo.bar
Subject: Confirmation for subscribe test2
--
Someone (possibly you) has requested that your email address be added
to or deleted from the mailing list "test2@srv.foo.bar".
If you really want this action to be taken, please send the following
commands (exactly as shown) back to "Majordomo@srv.foo.bar":
auth bf2c761b subscribe test2 yoko
If you do not want this action to be taken, simply ignore this message
and the request will be disregarded.
If your mailer will not allow you to send the entire command as a single
line, you may split it using backslashes, like so:
auth bf2c761b subscribe test2 \
yoko
If you have any questions about the policy of the list owner, please
contact "test2-approval@srv.foo.bar".
Thanks!
Majordomo@srv.foo.bar
& q
→ 参加の意思を伝える
% echo 'auth bf2c761b subscribe test2 yoko' | mail majordomo
% mail
Mail version 8.1 6/6/93. Type ? for help.
"/var/mail/yoko": 1 message 1 new
>N 1 Majordomo@srv.sugaho Tue Mar 16 23:51 36/1140 "Welcome to test2"
& 1
Message 1:
From owner-test2@srv.foo.bar Tue Mar 16 23:51:46 1999
Date: Tue, 16 Mar 1999 23:51:45 +0900 (JST)
To: yoko
From: Majordomo@srv.foo.bar
Subject: Welcome to test2
--
Welcome to the test2 mailing list!
Please save this message for future reference. Thank you.
If you ever want to remove yourself from this mailing list,
you can send mail to with the following
command in the body of your email message:
unsubscribe test2
or from another account, besides yoko:
unsubscribe test2 yoko
If you ever need to get in contact with the owner of the list,
(if you have trouble unsubscribing, or have questions about the
list itself) send email to .
This is the general rule for most mailing lists when you need
to contact a human.
TEST2 ML INTRO ← オリジナルで追加したtest2.intro
& q
% echo 'who test2' | mail majordomo
From Majordomo-Owner@srv.foo.bar Tue Mar 16 23:52:31 1999
Date: Tue, 16 Mar 1999 23:52:29 +0900 (JST)
To: yoko
From: Majordomo@srv.foo.bar
Subject: Majordomo results
--
>>>> who test2
Members of list 'test2':
sherry
yoko
2 subscribers
- 通し番号を付加してみよう
今までのtest2の環境に追加
# cd /usr/local/majordomo-1.94.4/
# cp ./Tools/sequencer .
# cd /usr/local/majordomo-1.94.4/lists
# echo 1>test2.seq
# mkdir test2.archive
# vi /etc/aliases
test2: "|/usr/local/majordomo-1.94.4/wrapper sequencer -l test2 -N -h srv.foo.bar test2-list"
test2-list::include:/usr/local/majordomo-1.94.4/lists/test2
test2-request: owner-test2
test2-owner: owner-test2
owner-test2: sugasawa # 管理者のメールアドレス
# newaliases #エイリアスの更新
reply_to = test2
subject_prefix = [TEST2:$SEQNUM]
sequencerのファイルを環境に合わせて一部修正
...
$ENV{'PATH'} = "/bin:/usr/bin:/usr/local/bin:/usr/sbin:/sbin";
$sendmail_cmd = "/usr/sbin/sendmail $opt_m -f$sendmail_sender " .
...
- 動作を確認してみよう!
% mail test2
Subject: test2のテスト
上手く送信できるか?
どうだろう?
.
EOT
→ 送信そして受信
% mail
Mail version 8.1 6/6/93. Type ? for help.
"/var/mail/yoko": 1 message 1 new
>N 1 yoko Wed Mar 17 00:56 20/653 "[TEST2:4] test2のテス"
& 1
Message 1:
From owner-test2 Wed Mar 17 00:56:10 1999
Date: Wed, 17 Mar 1999 00:56:04 +0900 (JST)
From: YOKO SUGASAWA
To: test2
Subject: [TEST2:4] test2のテスト
上手く送信できるか?
どうだろう?
→ 無事届いた。sherryにも届いているかを確認
$ mail
Mail version 8.1 6/6/93. Type ? for help.
"/var/mail/sherry": 2 messages 2 new
>N 1 yoko Wed Mar 17 00:56 20/653 "[TEST2:4] test2のテス"
& 1
Message 1:
From owner-test2 Wed Mar 17 00:56:10 1999
Date: Wed, 17 Mar 1999 00:56:04 +0900 (JST)
From: YOKO SUGASAWA
To: test2
Subject: [TEST2:4] test2のテスト
上手く送信できるか?
どうだろう?
SubjectにML名と通し番号が付きました。
めでたしめでたし。