以VBA傳送郵件--CDO物件:Excel 遊樂場:Xuite日誌
  • 文章分類
  • 搜尋文章
  • 關鍵字
  • 最新回應
  • Re:用驗證選圖片,by(jade)於2008-07-18
    Re:用驗證選圖片,by(迷羊)於2008-07-10
    Re:多重資料驗證,by(沙拉油)於2008-07-09
    Re:多重資料驗證,by(背景音樂mavis)於2008-07-08
    Re:Excel 說明內找不到的函數,by(基哥)於2008-06-30
    Re:Excel 說明內找不到的函數,by(沙拉油)於2008-06-26
    Re:Excel 說明內找不到的函數,by(基哥)於2008-06-26
    Re:利用WEB查詢換算匯率,by(Daniel)於2008-06-13
    Re:用驗證選圖片,by(Suzen)於2008-06-04
    Re:利用WEB查詢換算匯率,by(沙拉油)於2008-03-20
  • 參觀人氣統計
  • 日曆
  • 我的發燒文
  • 累積 | 今日
    loading......
  • 沙拉油
  • 最愛連結
  • MP3_Player
  • 2006-11-02 01:46 以VBA傳送郵件--CDO物件
  • ?
  • VBA
  • 好文轉寄
  • 平均分數:0 顆星    投票人數:0
    我要評分:
    標籤 : 


    CDO物件常用的屬性與方法

    屬性或方法作用說明
    From寄件者郵件地址(一般都必須有正確的網域名稱)
    To收件者郵件地址
    Cc副本收件者郵件地址
    Bcc密件副本收件者郵件地址
    Subject郵件主旨
    TextBody純文字內文
    HTMLBodyHTML格式內文
    ReplyTo當收件者按下「回覆」信件時的收件者郵件地址
    AddAttachment加入附件
    CreateMHTMLBody傳送一個網頁
    Send傳送郵件




    範例一(傳送一純文字郵件)

    Sub sendmail()
          Dim objEmail As Object
          Set objEmail = CreateObject("CDO.Message")      '建立 CDO 物件
          objEmail.From = "abc@company.com"                '寄件者(網域必須存在
          objEmail.To = "test@pchome.com"                      '收件者
          objEmail.Subject = "CDO郵件測試"                    '郵件主旨
          objEmail.TextBody = "郵件本文"                        '郵件內文
          objEmail.Send
          Set objEmail = Nothing
    End Sub




    範例二(傳送一HTML郵件經由遠端SMTP主機)

    Sub sendmail()
          Dim objEmail As Object
          Const SMTPSERVER = "msa.hinet.net"                '使用 msa.hinet.net 傳送郵件

          Set objEmail = CreateObject("CDO.Message")      '建立 CDO 物件
          With objEmail.Configuration.Fields
                .Item("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
                .Item("http://schemas.microsoft.com/cdo/configuration/smtpserver") = SMTPSERVER
                .Item("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25
                .Update
          End With

          objEmail.From = "abc@company.com"                '寄件者(網域必須存在
          objEmail.To = "test@pchome.com"                      '收件者
          objEmail.Subject = "CDO郵件測試"                    '郵件主旨
          objEmail.HTMLBody = "郵件本文"   'HTML郵件內文
          objEmail.Send
          Set objEmail = Nothing
    End Sub




    範例三將作用中的活頁簿當作附件傳給收件者,經由遠端SMTP主機)

    Sub sendmail()
          Dim fd As FileDialog
          Dim objEmail As Object
          Const SMTPSERVER = "msa.hinet.net" '使用 msa.hinet.net 傳送郵件

          Set objEmail = CreateObject("CDO.Message") '建立 CDO 物件
          With objEmail.Configuration.Fields
          .Item("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
          .Item("http://schemas.microsoft.com/cdo/configuration/smtpserver") = SMTPSERVER
          .Item("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25
          .Update
          End With

          '檢查檔案是否已經存檔,存檔後才能當作附件傳送
          If ActiveWorkbook.Path = "" Then
                Set fd = Application.FileDialog(msoFileDialogSaveAs)
                If Not fd.Show = -1 Then GoTo OUT
                Application.DisplayAlerts = False
                ActiveWorkbook.SaveAs fd.SelectedItems(1)
                Application.DisplayAlerts = True
          ElseIf Not ActiveWorkbook.Saved Then
                If MsgBox("檔案需先儲存才能被傳送,要儲存檔案嗎?", vbYesNo) = vbNo Then GoTo OUT
                ActiveWorkbook.Save
          End If

          Application.ScreenUpdating = False
          '檔案被已可讀可寫的方式開啟時無法被加入附件
          '所以需先變更檔案開啟屬性為唯讀才行

          ActiveWorkbook.ChangeFileAccess xlReadOnly

          With objEmail
          .From = "abc@abc.com"                         '寄件者
          .To = "test1@company.com"                  '收件者
          .cc = "test2@company.com"                   '副本收件者
          .Subject = "CDO郵件測試"                    '郵件主旨
          .HTMLBody = "郵件本文『附加檔案』" 'HTML郵件內文
          .AddAttachment ActiveWorkbook.FullName
          .Send                                                       '傳送郵件
          End With

          Set objEmail = Nothing
          '恢復檔案開啟屬性為可讀可寫
          ActiveWorkbook.ChangeFileAccess xlReadWrite
          Application.ScreenUpdating = True
          Exit Sub
    OUT:
          MsgBox "檔案沒儲存,停止傳送"
          Set objEmail = Nothing
    End Sub



    沙拉油 / Xuite日誌 / 回應(0) / 引用(0) / 好文轉寄
  • 回應