名前(送信者名または宛名)が設定されているか調べる。名前をMIMEエンコードして、末尾にスペースを追加する。メールアドレスを追加する。先頭の方から順に解説していきます。する事によって変数の宣言を強制しています。変数名の間違いを指摘してくれるので妙なバグに悩まされなくなります。perlのソースコードがUTF-8で書かれている事を宣言しています。これを行うことによりUTF-8を単なるバイト列ではなく、UTF-8で書かれた文字列としてperlに認識させます。これにより正規表現で異なる文字列が同一のバイトデーターにマッチしてしまう煩わしさが無くなります。Encode;はEncodeモジュールを使用する事を宣言しています。Encodeモジュールは様々なエンコード形式の変換をサポートするperlの標準モジュールです。相互に変換するのにJcode.plやJcode.pmは必要ありません。MIME::Base64;はMIME::Base64モジュールを使用する事を宣言しています。これを使ってメールデータをbase64エンコードします。これはperlの標準モジュールです。Net::SMTPモジュールを使用する事を宣言しています。これを使ってSMTPサーバーとの交信を、mailやsendmail等の外部コマンドに頼ることなくperlのみで簡単に行うことができます。これもperlの標準モジュールです。メール送信に使うSMTPサーバーと、ポート番号、送信者のドメインを設定する。'senderdomain.example.jp';上記の箇所では、Net::SMTPがSMTPサーバーと接続に必要なメールサーバーのホスト名、ポート番号、送信者のドメイン名を設定しています。$smtp_portはSMTPサーバーとの接続に使うポート番号です。SMTPの標準的なポート番号は25番なので、25としています。$smtp_heloはSMTPのHELOコマンド送信時に使われる引数で、メール送信者が名乗るべきドメイン名を指定します。scriptを設置するコンピューターのFQDN(ホスト名+ドメイン名)を入れるのが理想的です。送信者の名前とメールアドレスを設定する。宛先の宛名とメールアドレスを設定する。メールの件名を設定する。'UTF-8でメールを送ってみます。メールの本文を設定する。\n";上記の箇所では、送信者(from)の名前とメールアドレス、宛先(to)の宛名とメールアドレス、件名(subject)、メールの本文(message)を設定しています。メールヘッダを作成する。from、to、件名共にMIME-Header(UTF-8)へエンコードします。