Nhờ thêm chữ ký trong file gửi mail (3 người xem)

Liên hệ QC

Người dùng đang xem chủ đề này

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ị.

Anh/Chị sửa giúp em code trong file đính kèm khi gửi mail mình bổ sung thêm chữ ký vào mail giúp em với. Với trường hợp khi bấm gửi tự động Excel hay hiện hộp thoại có muốn lưu file đính kèm hay không, nếu chọn lưu thì file đính kèm bị trắng hết file, còn không lưu thì không sao, nhưng gửi đi gửi lại nhiều lần nó cứ hỏi lưu hay không hoài (mail này mình phải gửi hằng ngày).
Chúc Anh/Chị có tuần mới vui vẻ.
Cám ơn Anh/Chị.
 
Giúp mình thêm chữ ký vào mail với (chữ ký có sẵn trong Outlook)
 
Giúp mình thêm chữ ký vào mail với (chữ ký có sẵn trong Outlook)
Có ai giúp với, em mò mấy ngày rồi mà không ra

Signature?
Signature là văn bản hay cả văn bản và ảnh?
Trong Outlook có thể có rất nhiều signature, trong đó có 1 signature mặc định. Đính kèm mặc định hay muốn đính kèm 1 signature khác được chỉ ra cụ thể?
 
Signature?
Signature là văn bản hay cả văn bản và ảnh?
Trong Outlook có thể có rất nhiều signature, trong đó có 1 signature mặc định. Đính kèm mặc định hay muốn đính kèm 1 signature khác được chỉ ra cụ thể?

Mặc định đã tạo trong outlook nha anh

1537762171377.png
 
Tôi chỉ xem vụ chữ ký.

Tìm dòng này: Set OutMail = OutApp.CreateItem(0)
Thêm đoạn code sau vào sau dòng trên

Mã:
With OutMail
     .Display
End With
    CK = OutMail.htmlBody

Và sửa:
Mã:
.Body = vDoc1 & vbNewLine & vbNewLine & _
                           vDoc2 & vbNewLine & _
                            vbNewLine & _
                           vDoc3 & _
                           vbNewLine

Thành
Mã:
.htmlBody = vDoc1 & vbNewLine & vbNewLine & _
                           vDoc2 & vbNewLine & _
                            vbNewLine & _
                           vDoc3 & _
                           vbNewLine & CK

Code chữ ký bữa giờ e có làm như vậy rồi cũng không được anh ơi.
 
Sửa tay là sao vậy anh.
Để có chứ ký đâu tiên phải tạo thư trống trước:
---------------------------------------------
Set OutMail = OutApp.CreateItem(0)
OutMail.Display (mở một cửa sổ viết thư)
Signature = OutMail.HTMLBody (chữ ký được tạo ở câu lệnh này)
--------------------------------------------
sau khi đã có được chữ ký rồi thì mới lại "With OutMail" tiếp và điền những thứ liên quan và file đính kèm
-------------------------------------------------
With OutMail
.To = vTo
.CC = vCC
.BCC = ""
.Subject = vSject
.HTMLBody = body & Signature (body ở đây là một biến String)
.Attachments.Add wb.FullName
End with
--------------------------------------------------
Em chỉ hướng như vậy thôi, còn anh phải tự viết.
 
Để có chứ ký đâu tiên phải tạo thư trống trước:
---------------------------------------------
Set OutMail = OutApp.CreateItem(0)
OutMail.Display (mở một cửa sổ viết thư)
Signature = OutMail.HTMLBody (chữ ký được tạo ở câu lệnh này)
--------------------------------------------
sau khi đã có được chữ ký rồi thì mới lại "With OutMail" tiếp và điền những thứ liên quan và file đính kèm
-------------------------------------------------
With OutMail
.To = vTo
.CC = vCC
.BCC = ""
.Subject = vSject
.HTMLBody = body & Signature (body ở đây là một biến String)
.Attachments.Add wb.FullName
End with
Không nhất thiết, có thể đặt sau .Subject. Chỉ nhớ là trước khi Display thì không được thiết lập htmLBody. Tức không có
Mã:
.htmlBoby = "cái gì đó'
...
.Display
Bởi một khi đã thiết lập htmlBody thì ở thời điểm thiết lập thư đã có nội dung không kèm chữ ký. Từ lúc đó trở đi không thể thêm chữ ký được nữa bằng cách Display.

Chỉ cần quan sát Outlook. Khi ta vào outlook và chọn New mail thì cửa sổ soạn thư hiện ra và outlook chèn chữ ký mặc định nếu có. Tức ở thời điểm này đã có thư xịn 100%. Có thể nhấn gửi, tất nhiên có điền người nhận, và thư sẽ được gửi. Nội dung thư chỉ có chữ ký bởi người gửi thích thế, quyền của người ta.

Khi đã có thư trống với chữ ký rồi thì nó có nội dung HTML. Chỉ cần nối nội dung HTML đó với nội dung thư để tạo nội dung htmlbody mới. Cái nội dung HTML của chữ ký kia nó chính là .htmlBody ở bên phải dấu =
Mã:
.Display
.htmlbody = "nội dung thư" & .htmlbody

Cái .Display kia chính là hiển thị cửa sổ soạn thư, bắt chước cách nhấn new mail trong outlook.

Trước tôi có nói là có thể có nhiều signature và người dùng định chèn chữ ký nào. Không phải vô cớ mà tôi hỏi. Bởi nếu muốn chèn chữ ký không mặc định thì không dùng Display được. Vì giống như thao tác bằng tay trong outlook khi nhấn new mail thì chữ ký mặc định luôn được chèn. Lúc đó muốn thay bằng chữ ký mong muốn thì phải "cầy" thêm nữa.

Người ta có thể có nhiều chữ ký dùng cho nhiều đối tượng nhận thư. Và tùy theo nhu cầu ở thời điểm cụ thể người ta muốn chọn chữ ký thích hợp, không nhất thiết là mặc định.
 
Để có chứ ký đâu tiên phải tạo thư trống trước:
---------------------------------------------
Set OutMail = OutApp.CreateItem(0)
OutMail.Display (mở một cửa sổ viết thư)
Signature = OutMail.HTMLBody (chữ ký được tạo ở câu lệnh này)
--------------------------------------------
sau khi đã có được chữ ký rồi thì mới lại "With OutMail" tiếp và điền những thứ liên quan và file đính kèm
-------------------------------------------------
With OutMail
.To = vTo
.CC = vCC
.BCC = ""
.Subject = vSject
.HTMLBody = body & Signature (body ở đây là một biến String)
.Attachments.Add wb.FullName
End with
--------------------------------------------------
Em chỉ hướng như vậy thôi, còn anh phải tự viết.

Trước đây em có xem những file có chữ ký mặc đình và làm theo như vậy rồi, nhưng vẫn không được nên mới đăng lên diễn đàn (khi nó display để soạn 1 mail mới thì nó có chử ký, nhưng khi gửi lại xóa chữ ký đó đi). bên trên em có dòng "Dim Signature As String" luôn nhưng vẫn không có chữ ký mặc định khi gửi
 
Trước đây em có xem những file có chữ ký mặc đình và làm theo như vậy rồi, nhưng vẫn không được nên mới đăng lên diễn đàn (khi nó display để soạn 1 mail mới thì nó có chử ký, nhưng khi gửi lại xóa chữ ký đó đi). bên trên em có dòng "Dim Signature As String" luôn nhưng vẫn không có chữ ký mặc định khi gửi
Nói có sách mách có chứng.
Hãy gửi toàn bộ code gửi thư lên đây để mọi người kiểm chứng.
Có nhiều người thề là làm đúng hướng dẫn nhưng khi được yêu cầu và gửi code lên thì ai cũng thấy là làm không như hướng dẫn.

Không thể có chuyện mọi người làm được mà mình "làm y như thế" mà lại không được.
 
Nói có sách mách có chứng.
Hãy gửi toàn bộ code gửi thư lên đây để mọi người kiểm chứng.
Có nhiều người thề là làm đúng hướng dẫn nhưng khi được yêu cầu và gửi code lên thì ai cũng thấy là làm không như hướng dẫn.

Không thể có chuyện mọi người làm được mà mình "làm y như thế" mà lại không được.


Anh xem file đính kèm giúp em.
 
Anh xem file đính kèm giúp em.
Sai ở chỗ này:

.HTMLBody = body & Signature ->Dòng này đã có nội dung thư và chữ ký
.body = vDoc1 & vbNewLine & vbNewLine & _ -> nhưng dòng dưới này lại viết lại nội dung thư khác
vDoc2 & vbNewLine & _
vbNewLine & _
vDoc3 & _
vbNewLine
 
Sai ở chỗ này:

.HTMLBody = body & Signature ->Dòng này đã có nội dung thư và chữ ký
.body = vDoc1 & vbNewLine & vbNewLine & _ -> nhưng dòng dưới này lại viết lại nội dung thư khác
vDoc2 & vbNewLine & _
vbNewLine & _
vDoc3 & _
vbNewLine
Anh sửa giúp em được không, em bỏ dòng .HTMLBody = body & Signature sau vDoc3 & _ vbNewline thì thư nó không có nội dung nào hết kể cả chữ ký
 
Anh sửa giúp em được không, em bỏ dòng .HTMLBody = body & Signature sau vDoc3 & _ vbNewline thì thư nó không có nội dung nào hết kể cả chữ ký
Sao lại bỏ dòng
.HTMLBody = body & Signature

sửa thế này:
PHP:
With OutMail
        .To = vTo
        .CC = vCC
        .BCC = ""
        .Subject = vSject
         body = vDoc1 & vbNewLine & vbNewLine & _
                           vDoc2 & vbNewLine & _
                            vbNewLine & _
                           vDoc3 & _
                           vbNewLine
        .HTMLBody = body & Signature
 
Sao lại bỏ dòng
.HTMLBody = body & Signature

sửa thế này:
PHP:
With OutMail
        .To = vTo
        .CC = vCC
        .BCC = ""
        .Subject = vSject
         body = vDoc1 & vbNewLine & vbNewLine & _
                           vDoc2 & vbNewLine & _
                            vbNewLine & _
                           vDoc3 & _
                           vbNewLine
        .HTMLBody = body & Signature

Trước đây em cũng thử như vây rồi nhưng nó chỉ ra chữ ký chứ không có nội dung thư.
 
Lưu ý là dấu chấm(.) ở trước chữ body không có đâu nhé!
 
Nếu không có dấu (.) thì thư gửi chỉ có nội dung thư không có chữ ký.
Nôi dung đã có ở dòng
.HTMLBody = body & Signature
dòng này bao gồm ghép chữ ký và body mà body ở đây đã ghép các biến Vdoc...
Bài đã được tự động gộp:

Gửi cái file lên cho anh xem vậy.
 

File đính kèm

Lần chỉnh sửa cuối:
Nôi dung đã có ở dòng
.HTMLBody = body & Signature
dòng này bao gồm ghép chữ ký và body mà body ở đây đã ghép các biến Vdoc...
Bài đã được tự động gộp:

Gửi cái file lên cho anh xem vậy.

Lúc nảy em bỏ dấu . nhằm ở htmlbody. File anh gửi em thì có nội dung và chữ ký rồi, nhưng nội dung 3 cột nó dính liền với nhau chứ không có xuống dòng anh ơi "Chào Anh/Chị Vui lòng xem file đính kèm Cám ơn."
 
Lúc nảy em bỏ dấu . nhằm ở htmlbody. File anh gửi em thì có nội dung và chữ ký rồi, nhưng nội dung 3 cột nó dính liền với nhau chứ không có xuống dòng anh ơi "Chào Anh/Chị Vui lòng xem file đính kèm Cám ơn."
Anh thay "vbNewLine" = "<BR>"
 
Nó báo lỗi code màu đỏ anh ơi.
Như thế này anh ơi.
Body = vDoc1 & "<BR><BR>" & vDoc2 & "<BR><BR>" & vDoc3 & "<BR><BR>"
Bài đã được tự động gộp:

Cám ơn anh nhiều. Nếu muốn chỉnh font chữ của nội dung từ mặc định qua font Arial thì sửa code như thế nào vậy anh.
Anh tham khảo cách viết trong HTML ở link dưới.
https://www.w3schools.com/html/html_styles.asp
 
Lần chỉnh sửa cuối:
Nôi dung đã có ở dòng
.HTMLBody = body & Signature
dòng này bao gồm ghép chữ ký và body mà body ở đây đã ghép các biến Vdoc...
Bài đã được tự động gộp:

Gửi cái file lên cho anh xem vậy.
Anh cho mình hỏi trong file của anh khi ấn gửi mail thì nó hiện lên các hộp thoại, phải ấn send thì mail mới đi, gửi nhiều mail thì nó hiện rất nhiều hộp thoại vậy. Có cách nào ấn gửi thì nó gửi luôn ko hỏi ko ạ. thanks a
 
Anh cho mình hỏi trong file của anh khi ấn gửi mail thì nó hiện lên các hộp thoại, phải ấn send thì mail mới đi, gửi nhiều mail thì nó hiện rất nhiều hộp thoại vậy. Có cách nào ấn gửi thì nó gửi luôn ko hỏi ko ạ. thanks a
bỏ cái MsgBox ("Xong phim") đó đi thôi.
 
bỏ cái MsgBox ("Xong phim") đó đi thôi.
Minh đã viết đc code gửi mail đối với trường hợp của mình rồi, gửi mail ok nhưng ko biết chèn chữ ký giống file của bạn. thử áp dụng đoạn code signature = outmail.htmtbody cũng không đc. Bạn giúp mình đoạn này đc không. Cảm ơn bạn
 

File đính kèm

Minh đã viết đc code gửi mail đối với trường hợp của mình rồi, gửi mail ok nhưng ko biết chèn chữ ký giống file của bạn. thử áp dụng đoạn code signature = outmail.htmtbody cũng không đc. Bạn giúp mình đoạn này đc không. Cảm ơn bạn
phần signature mình viết là signature mặc định trên outlook, còn như bạn muốn chữ ký ở trên sheet thì thêm phần đó vao body là được
 
phần signature mình viết là signature mặc định trên outlook, còn như bạn muốn chữ ký ở trên sheet thì thêm phần đó vao body là được
Hiểu sai ý rồi.

Lấy chữ ký từ sheet là "Từ xưa tới nay" người ta làm thế. Bây giờ người ta muốn lấy từ outlook.

Trích
Minh đã viết đc code gửi mail đối với trường hợp của mình rồi, gửi mail ok nhưng ko biết chèn chữ ký giống file của bạn. thử áp dụng đoạn code signature = outmail.htmtbody cũng không đc

Và trong tập tin Word có thử lấy từ outlook

sign = RỖNG là đương nhiên. Muốn sign <> RỖNG thì trước dòng trên phải có olmail.Display
 
Hiểu sai ý rồi.

Lấy chữ ký từ sheet là "Từ xưa tới nay" người ta làm thế. Bây giờ người ta muốn lấy từ outlook.

Trích


Và trong tập tin Word có thử lấy từ outlook


sign = RỖNG là đương nhiên. Muốn sign <> RỖNG thì trước dòng trên phải có olmail.Display
anh có thể sửa trực tiếp trên code giúp mình không, vì mình vừa mới tập tành học vba, code trên là học lõm của ngta về chế biến thành của mình nên mình chưa rành lắm. Cảm ơn anh :)
 
anh có thể sửa trực tiếp trên code giúp mình không, vì mình vừa mới tập tành học vba, code trên là học lõm của ngta về chế biến thành của mình nên mình chưa rành lắm. Cảm ơn anh :)
Tôi viết rõ mà. Trích bài #35
trước dòng trên phải có olmail.Display

dòng trên là dòng mà tôi trích từ code của bạn

Tất nhiên dòng trên phải bỏ dấu nháy đi.

Tóm lại phải có sign = olmail.HTMLBody, và trước dòng đó phải có olmail.Display. Thế thôi.
Mã:
olmail.Display
sign = olmail.HTMLBody
 
Tôi viết rõ mà. Trích bài #35


dòng trên là dòng mà tôi trích từ code của bạn


Tất nhiên dòng trên phải bỏ dấu nháy đi.

Tóm lại phải có sign = olmail.HTMLBody, và trước dòng đó phải có olmail.Display. Thế thôi.
Mã:
olmail.Display
sign = olmail.HTMLBody
Mình đã thử và vẫn không được anh ơi :)
 
Bạn dán lên đây toàn bộ code mới nhất mà bạn nói là "đã thử". Hoặc đính kèm tập tin. Không có tập tin hoặc code thì làm sao tôi biết bạn "đã thử" như thế nào.
Dạ nhờ anh hỗ trợ giúp! cảm ơn anh
 

File đính kèm

Dạ nhờ anh hỗ trợ giúp! cảm ơn anh
Làm nhưng phải suy nghĩ chút.
signature = ThisWorkbook.Sheets(1).Cells(4, 2)
...
olmail.HTMLBody = body_message1 & "<BR>" & signature
Hồi xưa lấy chữ ký từ sheet thì mới dùng code trên. Bây giờ lấy từ outlook thì sao vấn là code ở trên??????????????

Bây giờ lấy từ outlook nên phải là
Mã:
sign = olmail.HTMLBody
...
olmail.HTMLBody = body_message1 & "<BR>" & sign

Tóm lại THỨ TỰ code phải là
thay
Mã:
olmail.To = ThisWorkbook.Sheets(2).Cells(i, 4)
 olmail.CC = ThisWorkbook.Sheets(2).Cells(i, 5)
 olmail.Subject = ThisWorkbook.Sheets(1).Cells(2, 2)
 olmail.BodyFormat = olFormatHTML
 olmail.HTMLBody = body_message1 & "<BR>" & signature
        
 olmail.Attachments.Add ThisWorkbook.Path & "\File dinh kem\" & ThisWorkbook.Sheets(2).Cells(i, 8)
 olmail.Display
  sign = olmail.HTMLBody
 
 olmail.Send

bằng
Mã:
olmail.To = ThisWorkbook.Sheets(2).Cells(i, 4)
 olmail.CC = ThisWorkbook.Sheets(2).Cells(i, 5)
 olmail.Subject = ThisWorkbook.Sheets(1).Cells(2, 2)
 olmail.BodyFormat = olFormatHTML
 olmail.Attachments.Add ThisWorkbook.Path & "\File dinh kem\" & ThisWorkbook.Sheets(2).Cells(i, 8)
 
 olmail.Display
 sign = olmail.HTMLBody
 olmail.HTMLBody = body_message1 & "<BR>" & sign
 
 olmail.Send

Và nhớ xóa signature = ThisWorkbook.Sheets(1).Cells(4, 2) đi. Bây giờ là lấy từ outlook chứ đâu còn lấy từ sheet.
 
Làm nhưng phải suy nghĩ chút.

Hồi xưa lấy chữ ký từ sheet thì mới dùng code trên. Bây giờ lấy từ outlook thì sao vấn là code ở trên??????????????

Bây giờ lấy từ outlook nên phải là
Mã:
sign = olmail.HTMLBody
...
olmail.HTMLBody = body_message1 & "<BR>" & sign

Tóm lại THỨ TỰ code phải là
thay
Mã:
olmail.To = ThisWorkbook.Sheets(2).Cells(i, 4)
 olmail.CC = ThisWorkbook.Sheets(2).Cells(i, 5)
 olmail.Subject = ThisWorkbook.Sheets(1).Cells(2, 2)
 olmail.BodyFormat = olFormatHTML
 olmail.HTMLBody = body_message1 & "<BR>" & signature
       
 olmail.Attachments.Add ThisWorkbook.Path & "\File dinh kem\" & ThisWorkbook.Sheets(2).Cells(i, 8)
 olmail.Display
  sign = olmail.HTMLBody
 
 olmail.Send

bằng
Mã:
olmail.To = ThisWorkbook.Sheets(2).Cells(i, 4)
 olmail.CC = ThisWorkbook.Sheets(2).Cells(i, 5)
 olmail.Subject = ThisWorkbook.Sheets(1).Cells(2, 2)
 olmail.BodyFormat = olFormatHTML
 olmail.Attachments.Add ThisWorkbook.Path & "\File dinh kem\" & ThisWorkbook.Sheets(2).Cells(i, 8)
 
 olmail.Display
 sign = olmail.HTMLBody
 olmail.HTMLBody = body_message1 & "<BR>" & sign
 
 olmail.Send

Và nhớ xóa signature = ThisWorkbook.Sheets(1).Cells(4, 2) đi. Bây giờ là lấy từ outlook chứ đâu còn lấy từ sheet.
dạ cảm ơn anh rất nhiều, giờ mới thông não ra anh ơi. đợt dịch này ở nhà nên sẽ cố gắng học để không hỏi những câu vớ vẩn như vậy nữa. hi
 

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

Back
Top Bottom