Dùng Excel để gửi mail trong Lotus Note

Liên hệ QC
Dùng Excel để gửi mail trong Lotus Note


Nếu bạn có một danh sách người nhận mail cùng nội dung cần gửi và bạn muốn dùng Excel để gửi mail tự động cho một danh sách với các nội dung khác nhau thông qua Lotus Note, bài viết này là dành cho bạn.

Giả sử tôi có một danh sách như sau bao gồm tên người nhận, địa chỉ email và địa chỉ lưu file. Mục đích của tôi là muốn gửi 1 bảng lương như một file đính kèm trong mail và nội dung mail để thông báo lương.

36770926196_d099006dbf_o.png


Bạn có thể dùng đoạn code sau đây:

Mã:
Sub Send_Email_via_Lotus_Notes_Attachment(receiver As String, subject As String, bodyletter As String, stAttachment As String)
Dim obAttachment As Object, EmbedObject As Object
Const EMBED_ATTACHMENT As Long = 1454
  
Set Session = CreateObject("Notes.NotesSession")
UserName = Session.UserName
MailDbName = Left$(UserName, 1) & Right$(UserName, (Len(UserName) - InStr(1, UserName, " "))) & ".nsf"
Set Maildb = Session.GetDatabase("", MailDbName)
If Maildb.IsOpen = True Then
Else
Maildb.OPENMAIL
End If
 
Set MailDoc = Maildb.CREATEDOCUMENT
 
MailDoc.Form = "Memo"
 
stSignature = Maildb.GetProfileDocument("CalendarProfile").GetItemValue("Signature")(0)
 
 
Recipient = receiver
MailDoc.SendTo = Recipient
MailDoc.subject = subject
MailDoc.Body = bodyletter & vbCrLf & vbCrLf & stSignature
 
Set obAttachment = MailDoc.CreateRichTextItem("stAttachment")
Set EmbedObject = obAttachment.EmbedObject(EMBED_ATTACHMENT, "", stAttachment)
 
MailDoc.SaveMessageOnSend = True
 
MailDoc.PostedDate = Now()
On Error GoTo errorhandler1
MailDoc.SEND 0, Recipient
 
Set Maildb = Nothing
Set MailDoc = Nothing
Set Session = Nothing
Exit Sub
 
 
errorhandler1:
 
Set Maildb = Nothing
Set MailDoc = Nothing
Set Session = Nothing
End Sub

Và sau đó, bạn chỉ cần sử dụng đoạn code sau đây để gửi:

Mã:
Sub SendTo()
 
Dim EndR As Long, i As Long
Dim receiver1 As String, subject1 As String, bodyletter1 As String, stattachment1 As String
 
EndR = Sheet1.Range("B65000").End(xlUp).Row
 
For i = 2 To EndR
 
    receiver1 = Sheet1.Range("B" & i).Value
    subject1 = Sheet1.Range("G1").Value
    bodyletter1 = "Dear " & Sheet1.Range("A" & i).Value & Chr(13) & Chr(13) & "Please find the payslip 10-2016 in the attached file."
    stattachment1 = Sheet1.Range("C" & i).Value
    Call Send_Email_via_Lotus_Notes_Attachment(receiver1, subject1, bodyletter1, stattachment1)
Next i
 
End Sub

Nhìn vào đoạn code trên, bạn có thể thấy với địa chỉ người nhận, code sẽ chạy vòng lặp để lấy từng giá trị tại cột B, và tương ứng với tiêu đề mail ngay tại ô G1. Nội dung mail đã được ghi lại ngay trong đoạn code và nếu cần bạn có thể tự chỉnh sửa theo ý mình tại biến bodyletter1. Và cuối cùng file đính kèm sẽ lấy theo địa chỉ có tại cột C.

Và cuối cùng, chúng ta cần làm một nút bấm để khi cần gửi mail, chỉ cần bấm nút. Bạn có thể tham khảo thêm bài viết này.

36123810304_fa74ff5a59_b.jpg


Chúc bạn thành công!

Một số bài viết có liên quan:
1/ Làm cách nào để ghi chú hiệu quả trong VBA?
2/ Conditional Formatting cho biểu đồ bằng VBA
3/ Khi nào nên sử dụng Msgbox, Inputbox và Userform?
4/ 8 thủ thuật trong VBE bạn nên biết
5/ Kích hoạt macro từ nút bấm ngoài bảng tính
6/ Làm thế nào để thay thế các chữ OK, CANCEL,... nhàm chán của Msgbox
7/ Giới thiệu VBA trong Excel
8/ Viết code để nhìn thấy ai là người cập nhật bảng tính của bạn lần gần đây nhất
9/ 4 cách sử dụng Immediate Window trong VBA hiệu quả hơn
10/ 3 gợi ý nhỏ mang lại thành công trong khai báo biến trong VBA
 

File đính kèm

  • giaiphapexcel_Gui mail qua Lotus Note.xlsm
    21 KB · Đọc: 22
Lần chỉnh sửa cuối:
Dùng Excel để gửi mail trong Lotus Note


Nếu bạn có một danh sách người nhận mail cùng nội dung cần gửi và bạn muốn dùng Excel để gửi mail tự động cho một danh sách với các nội dung khác nhau thông qua Lotus Note, bài viết này là dành cho bạn.

Giả sử tôi có một danh sách như sau bao gồm tên người nhận, địa chỉ email và địa chỉ lưu file. Mục đích của tôi là muốn gửi 1 bảng lương như một file đính kèm trong mail và nội dung mail để thông báo lương.


36770926196_d099006dbf_o.png


Bạn có thể dùng đoạn code sau đây:

Mã:
Sub Send_Email_via_Lotus_Notes_Attachment(receiver As String, subject As String, bodyletter As String, stAttachment As String)
Dim obAttachment As Object, EmbedObject As Object
Const EMBED_ATTACHMENT As Long = 1454
  
Set Session = CreateObject("Notes.NotesSession")
UserName = Session.UserName
MailDbName = Left$(UserName, 1) & Right$(UserName, (Len(UserName) - InStr(1, UserName, " "))) & ".nsf"
Set Maildb = Session.GetDatabase("", MailDbName)
If Maildb.IsOpen = True Then
Else
Maildb.OPENMAIL
End If

Set MailDoc = Maildb.CREATEDOCUMENT

MailDoc.Form = "Memo"

stSignature = Maildb.GetProfileDocument("CalendarProfile").GetItemValue("Signature")(0)


Recipient = receiver
MailDoc.SendTo = Recipient
MailDoc.subject = subject
MailDoc.Body = bodyletter & vbCrLf & vbCrLf & stSignature

Set obAttachment = MailDoc.CreateRichTextItem("stAttachment")
Set EmbedObject = obAttachment.EmbedObject(EMBED_ATTACHMENT, "", stAttachment)

MailDoc.SaveMessageOnSend = True

MailDoc.PostedDate = Now()
On Error GoTo errorhandler1
MailDoc.SEND 0, Recipient

Set Maildb = Nothing
Set MailDoc = Nothing
Set Session = Nothing
Exit Sub


errorhandler1:

Set Maildb = Nothing
Set MailDoc = Nothing
Set Session = Nothing
End Sub

Và sau đó, bạn chỉ cần sử dụng đoạn code sau đây để gửi:

Mã:
Sub SendTo()

Dim EndR As Long, i As Long
Dim receiver1 As String, subject1 As String, bodyletter1 As String, stattachment1 As String

EndR = Sheet1.Range("B65000").End(xlUp).Row

For i = 2 To EndR

    receiver1 = Sheet1.Range("B" & i).Value
    subject1 = Sheet1.Range("G1").Value
    bodyletter1 = "Dear " & Sheet1.Range("A" & i).Value & Chr(13) & Chr(13) & "Please find the payslip 10-2016 in the attached file."
    stattachment1 = Sheet1.Range("C" & i).Value
    Call Send_Email_via_Lotus_Notes_Attachment(receiver1, subject1, bodyletter1, stattachment1)
Next i

End Sub

Nhìn vào đoạn code trên, bạn có thể thấy với địa chỉ người nhận, code sẽ chạy vòng lặp để lấy từng giá trị tại cột B, và tương ứng với tiêu đề mail ngay tại ô G1. Nội dung mail đã được ghi lại ngay trong đoạn code và nếu cần bạn có thể tự chỉnh sửa theo ý mình tại biến bodyletter1. Và cuối cùng file đính kèm sẽ lấy theo địa chỉ có tại cột C.

Và cuối cùng, chúng ta cần làm một nút bấm để khi cần gửi mail, chỉ cần bấm nút. Bạn có thể tham khảo thêm bài viết này.


36123810304_fa74ff5a59_b.jpg


Chúc bạn thành công!

Một số bài viết có liên quan:
1/ Làm cách nào để ghi chú hiệu quả trong VBA?
2/ Conditional Formatting cho biểu đồ bằng VBA
3/ Khi nào nên sử dụng Msgbox, Inputbox và Userform?
4/ 8 thủ thuật trong VBE bạn nên biết
5/ Kích hoạt macro từ nút bấm ngoài bảng tính
6/ Làm thế nào để thay thế các chữ OK, CANCEL,... nhàm chán của Msgbox
7/ Giới thiệu VBA trong Excel
8/ Viết code để nhìn thấy ai là người cập nhật bảng tính của bạn lần gần đây nhất
9/ 4 cách sử dụng Immediate Window trong VBA hiệu quả hơn
10/ 3 gợi ý nhỏ mang lại thành công trong khai báo biến trong VBA
Cảm ơn Anh! đoạn code rất hay và hữu ích. Trường hợp muốn CC cho một địa chỉ lotus note nữa có được không ạ?
 
Upvote 0
Web KT
Back
Top Bottom