Giúp Đỡ, code vba gửi email

Liên hệ QC

babyheomoi

Thành viên thường trực
Tham gia
22/9/13
Bài viết
396
Được thích
91
Xin chào các thành viên GPE, em có câu hỏi đơn giản nhờ giúp đỡ.
Thường code gửi email bình thường có dạng:
Mã:
Set OutApp = CreateObject("Outlook.Application")
    Set OutMail = OutApp.CreateItem(0)
    With OutMail
        .To = DV(i, 2)
        '.cc = ""
        .Subject = Sheet2.Range("E1").Value
        .HTMLBody = xxxxxx
        .Attachments.add atN
        .Display    'Xem truoc khi gui mail
    '   .Send      'Gui mail ngay
    End With
    Set OutMail = Nothing
Next i
Cls:
    Set OutApp = Nothing: Set OutMail = Nothing
    Set olMailItm = Nothing: Set olApp = Nothing
Shell dF, vbHide
Application.DisplayAlerts = True: Application.EnableEvents = True: Application.ScreenUpdating = True
End Sub
Tuy nhiên, em có thắc mắc là, outlook em đang xài em cài 2-3 email 1 lúc. Do đó, nếu em muốn sửa code này để gửi email đi là email thứ 2, thứ 3 thì sửa thế nào ạ?
Em cám ơn!
 
Xin chào các thành viên GPE, em có câu hỏi đơn giản nhờ giúp đỡ.
Thường code gửi email bình thường có dạng:
Mã:
Set OutApp = CreateObject("Outlook.Application")
    Set OutMail = OutApp.CreateItem(0)
    With OutMail
        .To = DV(i, 2)
        '.cc = ""
        .Subject = Sheet2.Range("E1").Value
        .HTMLBody = xxxxxx
        .Attachments.add atN
        .Display    'Xem truoc khi gui mail
    '   .Send      'Gui mail ngay
    End With
    Set OutMail = Nothing
Next i
Cls:
    Set OutApp = Nothing: Set OutMail = Nothing
    Set olMailItm = Nothing: Set olApp = Nothing
Shell dF, vbHide
Application.DisplayAlerts = True: Application.EnableEvents = True: Application.ScreenUpdating = True
End Sub
Tuy nhiên, em có thắc mắc là, outlook em đang xài em cài 2-3 email 1 lúc. Do đó, nếu em muốn sửa code này để gửi email đi là email thứ 2, thứ 3 thì sửa thế nào ạ?
Em cám ơn!
sử dụng SendUsingAccount thử nha bạn
Mã:
    Set oApp = CreateObject("Outlook.Application")
    Set olAccount = oApp.Account
    Set olAccountTemp = oApp.Account
    Dim blFoundAccount As Boolean
    Dim strFrom As String
   
    strFrom = "ThanDieuDaiHiep@CổMộ.com"
    blFoundAccount = False
    Set olAccounts = oApp.Application.Session.Accounts
    For Each olAccountTemp In olAccounts
        Debug.Print olAccountTemp.smtpAddress
        If (olAccountTemp.smtpAddress = strFrom) Then
            Set olAccount = olAccountTemp
            blFoundAccount = True
            Exit For
        End If
    Next
    if blFoundAccount then
        'Code send mail
    end if
chú ý khi send mail thì nhớ là "Set .SendUsingAccount = oAccount" chứ " .SendUsingAccount = oAccount" là lỗi ah
 
Lần chỉnh sửa cuối:
Upvote 0
Nên gởi vô thùng rác đi bạn!
 
Upvote 0
Nên gởi vô thùng rác đi bạn!
Dạ em ko hiểu ý anh lắm ạ?
sử dụng SendUsingAccount thử nha bạn
Mã:
    Set oApp = CreateObject("Outlook.Application")
    Set olAccount = oApp.Account
    Set olAccountTemp = oApp.Account
    Dim blFoundAccount As Boolean
    Dim strFrom As String
  
    strFrom = "ThanDieuDaiHiep@CổMộ.com"
    blFoundAccount = False
    Set olAccounts = oApp.Application.Session.Accounts
    For Each olAccountTemp In olAccounts
        Debug.Print olAccountTemp.smtpAddress
        If (olAccountTemp.smtpAddress = strFrom) Then
            Set olAccount = olAccountTemp
            blFoundAccount = True
            Exit For
        End If
    Next
    if blFoundAccount then
        'Code send mail
    end if
chú ý khi send mail thì nhớ là "Set .SendUsingAccount = oAccount" chứ " .SendUsingAccount = oAccount" là lỗi ah
Tức là thay ThanDieuDaiHiep@CổMộ.com = email thứ 2 thứ 3 của mình phải không a?
 
Upvote 0
Web KT

Bài viết mới nhất

Back
Top Bottom