読者です 読者をやめる 読者になる 読者になる

Gauche でメール送信

Windows が持っていてオートメーションサーバとして公開されているコンポーネントは多彩です。 その中に CDO.Message という便利なコンポーネントを見付けました。 メール送信のためのコンポーネントです。 Gauche OLE の利用例としてこのコンポーネントを使って Gmail 経由でメールを送信するコードを示します。

#!/usr/bin/env gosh
(use win.ole)

(define oMsg (make-ole "CDO.Message"))
(set! (~ oMsg 'From) "username@gmail.com")
(set! (~ oMsg 'To)  "username@gmail.com")
(set! (~ oMsg 'Subject) "test")
(set! (~ oMsg 'TextBody) "This is test message\n")

(let1 conf-fields (~ oMsg 'Configuration 'Fields)
  (define strCF "http://schemas.microsoft.com/cdo/configuration/")
  (define (field-set! obj item val)
    (set! (~ (conf-fields 'Item (string-append strCF item)) 'Value) val))

  (field-set! oMsg "sendusing" 2)
  (field-set! oMsg "smtpserver" "smtp.googlemail.com")
  (field-set! oMsg "smtpserverport" 465)
  (field-set! oMsg "smtpusessl" #t)
  (field-set! oMsg "smtpauthenticate" 1)
  (field-set! oMsg "sendusername" "username@gmail.com")
  (field-set! oMsg "sendpassword" "password-hogehoge")
  (field-set! oMsg "smtpconnectiontimeout" 60)

  (conf-fields 'Update))

(oMsg 'Send)
(ole-release!)

Gauche でメールを送信しようという試みはいくつか見たことがあるのですが、 CDO.Message ならば全部を面倒みてくれるのでただ呼出すだけでよいので楽です。

もちろん各項目の内容を変えれば gmail 以外からもメールを送信することが出来ます。

メールの受信やアドレス帳の管理もオートメーション経由で出来るようですので MSDN を参考にして色々とやってみるとよいでしょう。

http://msdn.microsoft.com/ja-jp/library/cc447235.aspx

Document ID: 7976109281914b48fef29a6b75bf9294