戻る    次へ

Fox顧客管理DBのアイコン画像VBA Fox編

【4】メール送信

決して乱用しないようにとの前置きをしてから本題へ入ります。最近のメールサーバーはスパムメール対策で 送信時の認証が必要になっていると思いますので、認証有りのケースを示します。yahooでさえ認証無しにはVBAから送信できませんでした。 Microsoft CDO for Windows 2000 Libraryを参照設定に追加して以下のプロシージャでoutlook等のメーラー に設定している内容をセットしてやるだけでできます。

以下をユーザーフォームにCommandButton1を追加して記述する
Option Explicit

Private Sub CommandButton1_Click()
  If F_MailSend("kkkkkkkkkk@yahoo.co.jp", "件名こんにちは", "メールの本文") = 0 Then
    MsgBox " メール送信完了", vbInformation
  Else
    MsgBox " メール送信エラー", vbInformation
  End If

End Sub


Public Function F_MailSend(M_To As String, M_Subject As String, M_Body As String) As Integer

'■Microsoft CDO for Windows 2000 Libraryを参照設定すること
'■引数
'  M_To     : 宛先アドレス
'  M_Subject  : 件名
'  M_Body    : 本文
'■戻り値
' 正常時:0, エラー時:1

  Dim O_CDO As New CDO.Message
  
  On Error GoTo Error_Proc
  With O_CDO
    With .Configuration.Fields
      .Item(cdoSendUsingMethod) = cdoSendUsingPort  ' 外部SMTP指定
      .Item(cdoSMTPServer) = "smtp.mail.yahoo.co.jp" ' SMTPサーバ名
      .Item(cdoSMTPServerPort) = 25          ' ポート番号
      .Item(cdoSMTPConnectionTimeout) = 60      ' タイムアウト秒数
      
                              'SMTP‐AUTH有り
      .Item(cdoSMTPAuthenticate) = cdoBasic      'SMTP認証 :PLAIN / LOGIN / CRAM-MD5
      .Item(cdoSendUserName) = "zzzzzzzzzzz"     'ユーザー名
      .Item(cdoSendPassword) = "yyyyyyyyyyy"     'パスワード

      .Item(cdoLanguageCode) = cdoShift_JIS      ' 文字コード指定
      .Update                     ' 設定更新
    End With
    .MimeFormatted = True
    .Fields.Update
    .From = "uuuuu<xxxxxxxxxxx@yahoo.co.jp>"      ' 送信者名+送信者メールアドレス
    .To = M_To                     ' 宛先
    .Subject = M_Subject                ' 件名
    .TextBody = M_Body                 ' 本文
    .TextBodyPart.Charset = cdoShift_JIS        ' 文字コード指定(本文)
    
    .Send                        ' 送信
  End With
  Set O_CDO = Nothing
  F_MailSend = 0
  Exit Function

Error_Proc:
  F_MailSend = 1
  Set O_CDO = Nothing
End Function

  戻る    次へ

掲載情報

2009.1.20にフリーソフトであるGriffinEXCELテーブルとVBA2htmlが紹介された本が発売されました。この本のP99にHTML関連として紹介されています。