メール送信の新しいカタチ

4Dでは、電子メールを送信することの重要性と、それが今日のアプリケーションでいかに一般的なタスクになっていることを知っています。例えば、あなたがビジネスをしていて、数枚の画像やビデオを添付した、HTMLベースの魅力的なメールに、ファイル(例: 発注書や請求書)を添付して送信したいとします。そして、これらすべてをほんの数行のコードで実現したい場合を考えます。このコードとは簡単に書け、理解しやすいコードです。4D v17 R4から、このシナリオが可能になりました。そのため、電子メールに関連する機能セットが拡大されました。

この SMTP New transporterコマンドを使えば、3つの簡単なステップでメールを送ることができます。

  • SMTPトランスポーターを作成する
  • 電子メールを作成する
  • 電子メールを送信する

HDIによる電子メールの作成と送信

電子メールを作成する

電子メールは、transporter.send() のドキュメントに記載されている多くのプロパティを持つオブジェクトです。以下は、作者、受信者、件名、本文、添付ファイルなどの情報を持つ電子メールを作成する方法の例です。

まず、メールの作成者を指定しましょう。

$email:=New object
$email .from:="noreply.mail@4d.com"

次に受信者を指定します (異なるシンタックスを使用します)。

// 送信元アドレス
$email.to:="address1@mail.com,address2@mail.com"
// CCアドレス
$email.cc:=New object("name";"Stephen";"email";"address3@mail.com")
// BCCアドレス
$email.bcc:="address4@mail.com,address5@mail.com"

次に、件名を追加してみましょう。

$email.subject:="Hello world"

そして次は本文です。本文では、2種類を指定できます。一つはテキストでの本文です:

$email.textBody:="Test mail \n This is just a test email \n Please ignore it"

もう一つ、HTMLタイプの本文も指定できます。

$email.htmlBody:="<html><body><h1>Test mail </h1> This is just a test email <br /> Please ignore it</body></html>"

両方同時に使ってもいいですし、別々に使うことも可能です。両方使用した場合には、受信者が使っているクライアントメールに依存した表示になります。

最後に、添付ファイルを追加するために MAIL New attachmentコマンドを使用します。

$email.attachments:=New collection(MAIL New attachment("c:\\tmp\\4d.png"))

SMTPトランスポーターの作成

さて、メールができたら、次は送信です。そのためには、どのSMTPサーバを使用するかを SMTP New transporterコマンドで指定します。

$smtp:=New object
$smtp .host:="smtp.hostname"
$smtp .port:=25
$smtp .user:="User"
$smtp .password:="Password"
$smtpTransporter:=SMTP New transporter($smtp)

メールの送信

最後に、メールを送信します。

$status:=$smtpTransporter.send($email)

これがメールボックスに届いたテストメールです。

上記の例でお分かりのように、メールの作成と送信は劇的に改善され、非常に使いやすくなっています。隠れたパワーがたくさんあるのです。トランスポーターの設定(ユーザー認証、サーバーデータ)を簡単にテストできたり、添付ファイルを単に添付ファイルとして指定する以外にもインラインで(HTML内に)指定できたり、その他にもいろいろあります。これは開発中のいくつかの機能の最初のもので、今後のR-リリースのたびに、より多くの機能を繰り返しリリースしていく予定です。

Fabrice Mainguené
- Product Owner -Fabrice Mainguenéは、2016年11月に4D Programチームに参加しました。プロダクトオーナーとして、彼はユーザーストーリーを書き、それを機能仕様に変換する役割を担っています。CNAMでコンピュータサイエンスの学士号を取得した後、FabriceはWindev開発者として小さなソフトウェア出版社に入社しました。その後、彼は産業および貿易分野のさまざまな企業で、Windev および Web 開発者として、また新機能の技術アドバイザーとして働きました。