CDOを使ったメールの同胞配信システムを作成します。
現在(2018年6月11日)、技術調査レベルです。
■ 問い合わせのきっかけ
先日、mmship(当社が提供していたメールの同胞配信システム)について問い合わせがあった。少し変わった内容で、
① メルマガを発行している
② シリーズものなので、新たに登録したメンバーには、最初のメルマガから送りたい
という内容になる。
送る内容は、送付対象者ごとにカスタマイズすることになる。
mmshipも、こうしたことをある程度想定しているのだが、いかんせんジャストフィットはしない。
■ 旧のシステムでは対応できない
メールの同胞配信システムとして、フリーウエアとして「mmship」の名称で公開している。
作成した時期は、WindowsXPの時期なので、2000年から2005年、今から10年以上前になるだろう。いずれも「BASP21」というフリーのコンポーネントを用いている。
「BSP21」は性能の良いコンポーネントなのだが、フリー版はWindows10では動かないという報告もあり、見直しが必要になってきた。
現在、メールの同胞発信のサービスはいくつもあるので独自にアプリケーションを作る必要はないものの、それでも「業務をアプリケーションに合わせる」というのはなんとなく釈然としない。やはり自分でしたいことにフィットしたものがなければ作るまでということだ。
mmshipは、配信先ごとにメッセージを変えたり、添付ファイルを変えたりといった柔軟性のある配信を想定していた。やはりコンセプトは変えない。
基本的な考え方は変わらないものの、新しいバージョンとして、CDOを利用したものを作成することとする。
■ 開発方針
さて、BASP21に変わるモノはないかと調べてみると、マイクロソフトが提供する、メール送信用のコンポーネントに
CDO(Microsoft Collaboration Data Objects)
というのがあることがわかった。
突然サポートが終了するということや、仕様が変更になることもあり得るが、まずは無料ということなのでこれを使ってやってみよう。
当社の基本方針としては、できるだけソースも公開してしまうという方針にしている。
特別な開発環境なしで提供できるので システム構成は「EXCEL & VBA」となる。
■ フィージビリティ/確認
まずは、いろいろなサイトを確認して実験。
下記で送信できることを確認した。
Dim objCDO As New CDO.Message
With objCDO
With .Configuration.Fields ‘設定項目
.Item(CdoConfiguration.cdoSendUsingMethod) = CdoSendUsing.cdoSendUsingPort
.Item(CdoConfiguration.cdoSMTPServer) = smtpServer ‘SMTPサーバ名
.Item(CdoConfiguration.cdoSMTPServerPort) = portNo ‘ポート№
.Item(CdoConfiguration.cdoSMTPAuthenticate) = True
.Item(CdoConfiguration.cdoSMTPUseSSL) = True
.Item(CdoConfiguration.cdoSendUserName) = loginId
.Item(CdoConfiguration.cdoSendPassword) = loginPassword
.Item(CdoConfiguration.cdoSMTPConnectionTimeout) = 80
.Update ‘設定を更新
End With
With .Fields
.Item(“urn:schemas:mailheader:X-Priority”) = 1
.Update ‘設定を更新
End With
.MimeFormatted = True ‘MIMEを使って書式設定
.From = loginId
.To = Sheets(tname).Cells(5, 2)
.Subject = Sheets(tname).Cells(5, 4)
.TextBody = “本文”
On Error Resume Next
.Send ‘送信
End With
まずは、簡単なモノはこれでできることを確認した。
めどが立った。
さて、開発の開始となる。
2018年6月11日
Leave a Reply
コメントを投稿するにはログインしてください。