Hướng dẫn gửi mail hàng loạt và đính kèm nhiều file

Liên hệ QC

saobekhonglac

Thành viên mới
Tham gia
1/11/08
Bài viết
1,565
Được thích
1,454
Giới tính
Nam
Chào Anh/Chị.

Em có xem trên GPE có cách gửi mail hàng loạt và đính kèm file nhưng chỉ cho đính kèm 1 file duy nhất. Không biết mình có thể đính kèm nhiều file 1 lúc hay cả 1 filder hay không, Nếu được em nhờ Anh/Chị giúp em code gửi mail hoàng loạt và đính kèm nhiều file đính kèm trong 1 mail với (đính kèm hết 1 folder).

Cám ơn
 
Chào Anh/Chị.

Em có xem trên GPE có cách gửi mail hàng loạt và đính kèm file nhưng chỉ cho đính kèm 1 file duy nhất. Không biết mình có thể đính kèm nhiều file 1 lúc hay cả 1 filder hay không, Nếu được em nhờ Anh/Chị giúp em code gửi mail hoàng loạt và đính kèm nhiều file đính kèm trong 1 mail với (đính kèm hết 1 folder).

Cám ơn
Gửi 1 file đính kèm thì ok chứ nhiều file như chủ thớt muốn chắc không làm được đâu.
 
Chào Anh/Chị.

Em có xem trên GPE có cách gửi mail hàng loạt và đính kèm file nhưng chỉ cho đính kèm 1 file duy nhất. Không biết mình có thể đính kèm nhiều file 1 lúc hay cả 1 filder hay không, Nếu được em nhờ Anh/Chị giúp em code gửi mail hoàng loạt và đính kèm nhiều file đính kèm trong 1 mail với (đính kèm hết 1 folder).

Cám ơn
Dùng code sau nhé:

Mã:
Sub GuiMail_HLMT()
    Dim i As Integer
    Dim xOutApp As Object 'Outlook.Application
    Dim xMailOut As Object 'Outlook.MailItem
    Dim oFSO As Object
    Dim oFolder As Object
    Dim oFile As Object
    Set oFSO = CreateObject("Scripting.FileSystemObject")
    Application.ScreenUpdating = False
    Set xOutApp = CreateObject("Outlook.Application")
    For i = 1 To 11
        Set xMailOut = xOutApp.CreateItem(olMailItem)
        
        With xMailOut
           .To = Cells(i + 1, 2)
           .CC = Cells(i + 1, 3)
           .Subject = Cells(i + 1, 5)
           .HTMLBody = Cells(i + 1, 6) & "<br>" & Cells(i + 1, 7) & "<br>" & Cells(i + 1, 8)
           Set oFolder = oFSO.GetFolder(Cells(i + 1, 4) & "\")
           For Each oFile In oFolder.Files
              .Attachments.Add Cells(i + 1, 4) & "\" & oFile.Name
           Next
           .Display
        End With
    Next
    Set xMailOut = Nothing
    Set xOutApp = Nothing
    Set oFile = Nothing
    Set oFolder = Nothing
    Set oFSO = Nothing
    Application.ScreenUpdating = True
End Sub
 
Dùng code sau nhé:

Mã:
Sub GuiMail_HLMT()
    Dim i As Integer
    Dim xOutApp As Object 'Outlook.Application
    Dim xMailOut As Object 'Outlook.MailItem
    Dim oFSO As Object
    Dim oFolder As Object
    Dim oFile As Object
    Set oFSO = CreateObject("Scripting.FileSystemObject")
    Application.ScreenUpdating = False
    Set xOutApp = CreateObject("Outlook.Application")
    For i = 1 To 11
        Set xMailOut = xOutApp.CreateItem(olMailItem)
       
        With xMailOut
           .To = Cells(i + 1, 2)
           .CC = Cells(i + 1, 3)
           .Subject = Cells(i + 1, 5)
           .HTMLBody = Cells(i + 1, 6) & "<br>" & Cells(i + 1, 7) & "<br>" & Cells(i + 1, 8)
           Set oFolder = oFSO.GetFolder(Cells(i + 1, 4) & "\")
           For Each oFile In oFolder.Files
              .Attachments.Add Cells(i + 1, 4) & "\" & oFile.Name
           Next
           .Display
        End With
    Next
    Set xMailOut = Nothing
    Set xOutApp = Nothing
    Set oFile = Nothing
    Set oFolder = Nothing
    Set oFSO = Nothing
    Application.ScreenUpdating = True
End Sub


Cám ơn anh nhiều. Trường hợp em có nhiều cột hơn thì em thay đổi số 11 trong "For i = 1 To 11" thành số cột mới là được phải không anh, sau đó đổi lại vị trí cột của các dòng to,cc, tiêu đề,...
 
Cám ơn anh nhiều. Trường hợp em có nhiều cột hơn thì em thay đổi số 11 trong "For i = 1 To 11" thành số cột mới là được phải không anh, sau đó đổi lại vị trí cột của các dòng to,cc, tiêu đề,...
Tùy bạn chỉnh sửa sao cho phù hợp với file của bạn nhé.
 
Gửi 1 file đính kèm thì ok chứ nhiều file như chủ thớt muốn chắc không làm được đâu.
Cũng đua đòi chút xem có làm được không :)
Mã:
Sub TestMail()
    Dim wb As Workbook
    Dim OutApp As Object, OutMail As Object
    Dim cn As Object
    Dim fso, folder, file, files
    Dim strPath As String
    
        Set cn = CreateObject("ADODB.connection")
        strPath = "C:\Users\thoangti.FUSHAN\Desktop\MIS\M"              '<---- Dien Folder can gui vao day"
        Set fso = CreateObject("Scripting.FileSystemObject")
        Set folder = fso.GetFolder(strPath)
        Set files = folder.files
    
        
    With Application
        .ScreenUpdating = False
        .EnableEvents = False
    End With
    Set OutApp = CreateObject("Outlook.Application")
    Set OutMail = OutApp.CreateItem(0)
    On Error Resume Next
    With OutMail
        .To = "thong.hoang-tien@fih-foxconn.com"
        .CC = ""
        .BCC = ""
        .Subject = ("Thu nghiem")
        
        .Body = "Xin Chao" & vbNewLine & vbNewLine & _
                           "Vui long kiem tra tap tin dinh kem" & _
                            vbNewLine & _
                            "Cam on" & _
                            vbNewLine & vbNewLine & _
                            "Chuc 1 ngay tot lanh" & _
                            vbNewLine & _
                           "Br,Thong"
        For Each file In files
        vName = file.Name
        Set wb = Workbooks.Open(strPath & "\" & vName)
        .Attachments.Add wb.FullName
        wb.Close
        Next
        
        .send   'or use .Display send
        '.Display send
    End With
    Set OutMail = Nothing
    Set OutApp = Nothing

    With Application
        .ScreenUpdating = True
        .EnableEvents = True
    End With
    MsgBox ("Xong phim")
End Sub
 

File đính kèm

1 file cũng được mà bạn, test thử nhé.

Em đã thử, nó báo lỗi dòng bên dưới, anh xem lại giúp em với:

Set oFolder = oFSO.GetFolder(Cells(i + 1, 4) & "\")
Đường đẫn chi tiết file "D:\13-Music\Ai Bieu Anh Lam Thinh - Yến Phương - Nhạc Trẻ.MP3"

Có khi nào file có dấu nó không hiểu không anh,
 
Em đã thử, nó báo lỗi dòng bên dưới, anh xem lại giúp em với:

Set oFolder = oFSO.GetFolder(Cells(i + 1, 4) & "\")
Đường đẫn chi tiết file "D:\13-Music\Ai Bieu Anh Lam Thinh - Yến Phương - Nhạc Trẻ.MP3"

Có khi nào file có dấu nó không hiểu không anh,
Code lấy file trong Folder nhé bạn
 
Em không biết gì về VBA mà anh nói như thế thì em cũng bó tay .com
cụ thể bạn muốn gửi theo danh sách như thế nào:
1. gửi tất cả files trong folder và gửi thêm files theo danh sách chi tiết nếu có
2. gửi Files theo danh sách, trong trường hợp nếu không có files theo danh sách thì sẽ quay ra gửi toàn bộ files trong folder.
3. tạo hai button với các chế độ gửi khác nhau.
Hoặc một cách nào khác. Bạn muốn gửi theo cách nào thì mình mới giúp được
 
cụ thể bạn muốn gửi theo danh sách như thế nào:
1. gửi tất cả files trong folder và gửi thêm files theo danh sách chi tiết nếu có
2. gửi Files theo danh sách, trong trường hợp nếu không có files theo danh sách thì sẽ quay ra gửi toàn bộ files trong folder.
3. tạo hai button với các chế độ gửi khác nhau.
Hoặc một cách nào khác. Bạn muốn gửi theo cách nào thì mình mới giúp được

Gửi theo 1 trong 2 tiêu chí sau:

nếu gõ địa chỉ Foder thì khi gửi sẽ gửi hết file trong foder.
nếu gõ địa chỉ file chi tiết thì gửi sẽ gửi file chi tiết đó luôn

Vừa folder và vừa file tùy vào địa chỉ mình gửi.
 
Gửi theo 1 trong 2 tiêu chí sau:

nếu gõ địa chỉ Foder thì khi gửi sẽ gửi hết file trong foder.
nếu gõ địa chỉ file chi tiết thì gửi sẽ gửi file chi tiết đó luôn

Vừa folder và vừa file tùy vào địa chỉ mình gửi.
Bạn thử xem có phải ý bạn là vậy ?
 

File đính kèm

Web KT

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

Back
Top Bottom