電子メール送信のさまざまな例
チュートリアルのこの部分では、Gmail SMTP サーバーと Gmail アカウントを使用して電子メールを送信する方法が示されています。
例 1: 単純なテキストメールの送信
Gmail SMTP サーバーを使用して単純なテキスト電子メールを送信する次のスクリプトを含む Perl ファイルを作成します。有効な電子メール アドレスとアプリ パスワードに設定されているパスワードを $username 変数と $password 変数に設定する必要があります。ダミーのユーザー名とパスワードがスクリプト内で割り当てられます。アプリのパスワードが正しく設定されていない場合、メールは送信されません。次に、有効な受信者と送信者の電子メール アドレスを $to 変数と $from 変数に設定して、電子メールが正しく送信されたかどうかを確認します。スクリプトの他の部分は変更されません。 SMTP サーバーが接続され、ユーザー情報が正常に認証された場合、単純なテキスト メッセージが受信者の電子メール アドレスに送信されます。
#!/usr/bin/perl
#必要なモジュールをインポートする
厳密に使用する ;
Net::SMTP::SSL を使用する ;
#Gmail サーバーを使用して電子メールを送信するサブルーチンを宣言します
サブ送信メール
{
#認証用のユーザー名とパスワード
私の$ユーザー名 = 「ユーザー名@gmail.com」 ;
私の$パスワード = 「アプリパスワード」 ;
#メール送信用の変数を初期化する
私の$to = 「receiver@gmail.com」 ;
私の$from = 「メヘル・ニガル
私の $subject = 「テストメールです」 ;
私の$メッセージ = 「こんにちは。Perl を使用して電子メールを送信しています。」 ;
#smtp 変数を宣言する
私の$smtpServer ;
#GmailのSMTPサーバーに接続する
もし ( ない $smtpサーバー = ネット::SMTP::SSL- > 新しい ( 「smtp.gmail.com」 、 ポート => 465 、 デバッグ => 1 ) )
{
の 「SMTPサーバーに接続できません。 \n 」 ;
}
#ユーザー名とパスワードが有効であることを確認してください
$smtpServer- > 認証 ( $ユーザー名 、 $パスワード ) ||の '認証エラー。 \n 」 ;
$smtpServer- > 郵便 ( $から。 」 \n 」 ) ;
$smtpServer- > に ( $to。 」 \n 」 ) ;
$smtpServer- > データ ( ) ;
$smtpServer- > データ送信 ( 'から: ' 。 $から。 」 \n 」 ) ;
$smtpServer- > データ送信 ( 'に: ' 。 $to 。 」 \n 」 ) ;
$smtpServer- > データ送信 ( '主題: ' 。 $subject 。 」 \n 」 ) ;
$smtpServer- > データ送信 ( 」 \n 」 ) ;
}
#サブルーチンを呼び出す
&メールを送る ( ) ;
出力:
電子メールが正常に送信された場合、スクリプトの実行後、出力の先頭に次の同様の情報が表示されます。
受信者の電子メール アドレスを開くと、受信箱に次の電子メールが届きます。
例 2: HTML 形式の電子メールの送信
Gmail SMTP サーバーを使用して HTML 形式の電子メールを送信する次のスクリプトを含む Perl ファイルを作成します。前の例と同様に、有効な電子メール アドレスとパスワードを設定する必要があります。次に、有効な受信者と送信者の電子メール アドレスを設定します。 HTML コードはスクリプト内の電子メール メッセージとして追加されます。 HTML形式のメールを送信するため、メールのコンテンツタイプをtext/htmlに設定します。スクリプトの他の部分は前の例と同じです。 SMTPサーバーに接続し、ユーザー情報の認証に成功すると、受信者のメールアドレスにHTML形式のメールが送信されます。
#!/usr/bin/perl#必要なモジュールをインポートする
厳密に使用する ;
Net::SMTP::SSL を使用する ;
#Gmail サーバーを使用して電子メールを送信するサブルーチンを宣言します
サブ送信メール
{
#認証用のユーザー名とパスワード
私の$ユーザー名 = 「ユーザー名@gmail.com」 ;
私の$パスワード = 「アプリパスワード」 ;
#メール送信用の変数を初期化する
私の$to = 「receiver@gmail.com」 ;
私の$from = 「メヘル・ニガル
私の $subject = 「登録が完了しました」 ;
私の$メッセージ = '
私たちのサイトへようこそ
' ;#smtp 変数を宣言する
私の$smtpServer ;
#Gmail smtp サーバーに接続する
もし ( ない $smtpサーバー = ネット::SMTP::SSL- > 新しい ( 「smtp.gmail.com」 、 ポート => 465 、 デバッグ => 1 ) )
{
の 「SMTPサーバーに接続できません。 \n 」 ;
}
#ユーザー名とパスワードが有効であることを確認してください
$smtpServer- > 認証 ( $ユーザー名 、 $パスワード ) ||の '認証エラー。 \n 」 ;
$smtpServer- > 郵便 ( $から。 」 \n 」 ) ;
$smtpServer- > に ( $to。 」 \n 」 ) ;
$smtpServer- > データ ( ) ;
$smtpServer- > データ送信 ( 'から: ' 。 $から。 」 \n 」 ) ;
$smtpServer- > データ送信 ( 'に: ' 。 $to 。 」 \n 」 ) ;
$smtpServer- > データ送信 ( '主題: ' 。 $subject 。 」 \n 」 ) ;
#HTML 形式の電子メールを送信するには、電子メールのコンテンツ タイプを HTML に設定します。
$smtpServer- > データ送信 ( 'Content-Type: text/html; charset=utf-8 \n \n 」 ) ;
$smtpServer- > データ送信 ( $メッセージ。 」 \n 」 ) ;
$smtpServer- > データの終わり ( ) ;
$smtpServer- > やめる ;
}
#サブルーチンを呼び出す
&メールを送る ( ) ;
出力:
電子メールが正常に送信された場合、スクリプトの実行後、出力の先頭に次の同様の情報が表示されます。
受信者の電子メール アドレスを開くと、受信箱に次の電子メールが届きます。
結論
Gmail アカウントの「安全性の低いアプリ」を無効にすると、Gmail SMTP サーバー経由で Perl を使用して電子メールを送信する方法が以前ほど簡単ではなくなります。ただし、アプリのパスワードを設定することでメールを送信できるようになりました。