SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

特集記事

Indy 10とSynapseを利用したSMTP機能の実装

SMTP認証、SMTP over SSL/TLSの実装と日本語文字コード処理

  • このエントリーをはてなブックマークに追加

Indyの現バージョンであるIndy 10のSMTP機能では、SMTP認証、SMTP over SSL/TLSといった最近必須になりつつある機能が拡充されています。Indy 10を使ってメール送信機能を実装してみようというのが本稿の第一の目的です。また、SMTP機能を提供するIndyのようなコンポーネントにおいて、日本語文字コード変換機能の実装について検討しました。本稿ではIndyコンポーネントの対照としてSynapseライブラリを用いて比較検討を行いました。

  • このエントリーをはてなブックマークに追加

完成イメージ
完成イメージ

 イメージ図はIndy 10を利用した例ですが、Synapseを利用した例も同様のイメージです。

はじめに

 Delphiに付属するIndyは、メールの送信(SMTP)や受信(POP3)の動作処理を行うコンポーネントを提供しています。DelphiのIDE開発環境と併せることで、容易にかつ短時間でメール機能を構築することができます。

 Delphi 7に付属するIndy 9を利用したSMTP送信の実現については、CodeZineにも寄稿しているクジラ飛行机氏が、氏のWebサイト(Indy9でメール送信)で詳細を述べています。

 Indyの現バージョンであるIndy 10のSMTP機能では、SMTP認証、SMTP over SSL/TLSといった昨今必須になりつつある機能が拡充され、サポートされています。本稿の目的の一つは、Indy 10におけるメール送信機能の実現と、その機能を実験してみるというものです。もう一つの目的は、IndyのようなSMTP機能の実現コンポーネントと、日本語文字コード変換機能の実装についての検討です。本稿では、Indyコンポーネントの対照としてSynapseライブラリ(以下、Synapse)を用いた実験を行います。SynapseによるSMTPの実現方法は、Indyに勝るとも劣らずに、平易に実現できます。特に日本語文字コードの処理については、Indyとまったく異なる処理をしています。

対象読者

  • SMTP認証を実現したい人
  • SMTP over SSL/TLSを実現したい人
  • 日本語でのメール送信機能を実現したい人
  • Indyコンポーネントの使い方を知りたい人
  • Synapseの使い方を知りたい人

必要な環境

Indy 10、Synapseの入手

 開発環境は、Windows XP(SP2)上でDelphi 7とIndy 10(10.1.5)コンポーネント、およびSynapse(37b3)を使用しました。両者ともオープンソースのフリーウェアです。

  • The Indy Project
  • ……Indy 10(10.1.5)コンポーネントのダウンロード先。
  • Ararat Synapse
  • ……Synapse(37b3)のダウンロード先。

DLL、バイナリの入手

 SSL機能を実現するために、以下のDLL、バイナリを入手します。OpenSSL(0.9.7)のWin32バイナリの配布は複数のサイトで行われています。下記のサイトはその一例です。

jconvert.pas、TPzConvの入手

 文字コードの変換を実現するために、jconvert.pas(ユニット)、または、TPzConv(コンポーネント)を入手します。

  • jconvert.pas : Delphi用文字コード変換ライブラリユニット

 現在、作者のサイトからダウンロードはできません(リンクが切れています)。以下のサイトで入手は可能ですが、開発されたアプリケーションの中で独自に改良したものをソースとして添付されているのが現状です。

  • TPzConvがダウンロード可能なサイト
    • PzFactoryの「Delphi VCL」ページ
    • TPzConv 文字コード変換総合コンポーネント(Version 1.2) ファイル名「Pzconv12.lzh」

 併せて「iconv.dll」もダウンロードしてください。「iconv.dll」は、Synapseで2バイトコードを扱う場合に必要です。

 「libiconv」というGNU LGPLに従う、エンコードコンバートライブラリが存在します。簡単に言えば、漢字コード変換ライブラリです。CP932/EUC/JIS/UTF8その他の、相互変換が可能です。「iconv.dll」はその「libiconv」をWindowsのDLLとしてコンパイルしたものです。

会員登録無料すると、続きをお読みいただけます

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

次のページ
解説

この記事は参考になりましたか?

  • このエントリーをはてなブックマークに追加
特集記事連載記事一覧

もっと読む

この記事の著者

紺野 道広(コンノ ミチヒロ)

テクノスタリオン・インク取締役社長。日本大学歯学部兼任講師。流通・物流に伴う電子データ処理の効率化や、日々データベースに蓄積される業務データのデータマイニング、顧客心理や地域性といった非数値データを融合したデータ分析や解析を中心に、様々なアプリケーションソフトウェアも開発しています。 

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/400 2007/12/10 13:51

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング