Page 1 of 1

สอบถาม Error การส่งอีเมลล์ gmail ผ่าน VB Excel และการแนบไฟล์เป็นรูปภาพให้แสดงในอีเมลล์

Posted: Mon Aug 01, 2022 9:15 pm
by Lady_P86
1)หนู copy code gmail จาก https://wellsr.com/vba/2020/excel/vba-s ... ith-gmail/
นำมาใช้ แต่ขึ้น Error ตามภาพด้านล่างค่ะ รบกวนสอบถามว่าเกิดจากอะไรและแก้ไขยังไงคะ
ขอบพระคุณล่วงหน้าค่ะ

โค้ดที่ copy มาจากเว็บ และนำไปใช้ค่ะ
Image

Code: Select all

'For Early Binding, enable Tools > References > Microsoft CDO for Windows 2000 Library
Sub SendEmailUsingGmail()
    Dim NewMail As Object
    Dim mailConfig As Object
    Dim fields As Variant
    Dim msConfigURL As String
    On Error GoTo Err:

    'late binding
    Set NewMail = CreateObject("CDO.Message")
    Set mailConfig = CreateObject("CDO.Configuration")

    ' load all default configurations
    mailConfig.Load -1

    Set fields = mailConfig.fields

    'Set All Email Properties
    With NewMail
        .From = ""
        .To = ""
        .CC = ""
        .BCC = ""
        .Subject = "Demo Spreadsheet Attached"
        .Textbody = "Let me know if you have questions about the attached spreadsheet!"
        '.Addattachment "c:\data\testmail.xlsx"
    End With

    msConfigURL = "http://schemas.microsoft.com/cdo/configuration"

    With fields
        .Item(msConfigURL & "/smtpusessl") = True             'Enable SSL Authentication
        .Item(msConfigURL & "/smtpauthenticate") = 1          'SMTP authentication Enabled
        .Item(msConfigURL & "/smtpserver") = "smtp.gmail.com" 'Set the SMTP server details
        .Item(msConfigURL & "/smtpserverport") = 465          'Set the SMTP port Details
        .Item(msConfigURL & "/sendusing") = 2                 'Send using default setting
        .Item(msConfigURL & "/sendusername") = "Your gmail address" 'Your gmail address
        .Item(msConfigURL & "/sendpassword") = "Your password" 'Your password or App Password
        .Update                                               'Update the configuration fields
    End With
    NewMail.Configuration = mailConfig
    NewMail.Send
    
    MsgBox "Your email has been sent", vbInformation

Exit_Err:
    'Release object memory
    Set NewMail = Nothing
    Set mailConfig = Nothing
    End

Err:
    Select Case Err.Number
    Case -2147220973  'Could be because of Internet Connection
        MsgBox "Check your internet connection." & vbNewLine & Err.Number & ": " & Err.Description
    Case -2147220975  'Incorrect credentials User ID or password
        MsgBox "Check your login credentials and try again." & vbNewLine & Err.Number & ": " & Err.Description
    Case Else   'Report other errors
        MsgBox "Error encountered while sending email." & vbNewLine & Err.Number & ": " & Err.Description
    End Select

    Resume Exit_Err

End Sub
2)สอบถามวิธีการเขียนโค้ดการแนบไฟล์เป็นรูปภาพให้แสดงในอีเมลล์
เดิม ใช้วิธีเซฟรูปเป็น htm แต่เมื่อใช้VBเขียนแนบไฟล์แล้ว รูปภาพไม่แสดงในเนื้อหาของอีเมลล์ตามภาพค่ะ
snanui2.JPG

Re: สอบถาม Error การส่งอีเมลล์ gmail ผ่าน VB Excel และการแนบไฟล์เป็นรูปภาพให้แสดงในอีเมลล์

Posted: Tue Aug 02, 2022 4:08 am
by parakorn
ไม่แน่ใจว่าตอนนี้ทาง Google Block วิธีการส่ง Email ผ่าน VBA หรือยังนะครับ เนื่องจากประมาณเดือนก่อน มีช่องโหว่ Zero Day ที่ใช้ช่องทางในการแนบไฟล์ผ่านตระกูล Microsoft และเนื่องจากต้องใช้เวลา Patch สักพัก หลาย Platform จึงมีการ Block การใช้งาน VBA เพื่อเป็นการป้องกันเบื้องต้นครับ

Re: สอบถาม Error การส่งอีเมลล์ gmail ผ่าน VB Excel และการแนบไฟล์เป็นรูปภาพให้แสดงในอีเมลล์

Posted: Tue Aug 02, 2022 11:53 am
by Lady_P86
ขอบคุณมากค่ะ

Re: สอบถาม Error การส่งอีเมลล์ gmail ผ่าน VB Excel และการแนบไฟล์เป็นรูปภาพให้แสดงในอีเมลล์

Posted: Tue Aug 09, 2022 1:07 pm
by Lady_P86
parakorn wrote: Tue Aug 02, 2022 4:08 am ไม่แน่ใจว่าตอนนี้ทาง Google Block วิธีการส่ง Email ผ่าน VBA หรือยังนะครับ เนื่องจากประมาณเดือนก่อน มีช่องโหว่ Zero Day ที่ใช้ช่องทางในการแนบไฟล์ผ่านตระกูล Microsoft และเนื่องจากต้องใช้เวลา Patch สักพัก หลาย Platform จึงมีการ Block การใช้งาน VBA เพื่อเป็นการป้องกันเบื้องต้นครับ
ได้รับคำตอบตรงความต้องการ (บางส่วน)