Nhờ sửa lỗi mail tự đổi " " trong file đính kèm thành "%20"

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,450
Giới tính
Nam
Chào Anh, Chị.

Em có file excel trước giờ hay sử dụng để gửi mail tự động. Hôm nay Em đổi máy tính mới thì khi gửi file bị lỗi như sau:

Các khoảng trắng trong tên file đính kèm đều bị đổi thành "%20" khi đính kèm file (Bao%20cao%20thang), nội dùng file thì không thay đổi gì.

Đã tắt tính năng Replace text as you type trong AutoCorrect

Nhờ Anh, Chị sữa lỗi giúp.
 
Bạn "gửi mail tự động" như thế nào?
 
Mail Client của bạn là cái gì?
Trông có vẻ như bị lỗi cách hiển thị font.
%20 là cách hiển thị dấu cách trong địa chỉ quép. 20 là trị Hex (hệ thập lục phân) của 32 (hệ thập phân), trị ASCII của dấu cách.
 
Bạn "gửi mail tự động" như thế nào?
Gửi từ vba trên excel, file này trước đây mình vẫn gửi bình thường, bây giờ đổi máy tính mới thì mới bị. Mình gửi vba như bên dưới:

1646726911192.jpeg
Sub SendMail()
Dim wb As Workbook
Dim OutApp As Object, OutMail As Object
Dim cn As Object
Dim fso, folder, file, files
Dim strPath As String

lastrow1 = Sheets(1).Range("B" & Rows.Count).End(xlUp).Row
For i = 2 To lastrow1
vTo = Sheets(1).Cells(i, 2)
vCC = Sheets(1).Cells(i, 3)
vPath = Sheets(1).Cells(i, 4)
vFiles = Sheets(1).Cells(i, 5)
vSject = Sheets(1).Cells(i, 6)
vDoc1 = Sheets(1).Cells(i, 7)
vDoc2 = Sheets(1).Cells(i, 8)
vDoc3 = Sheets(1).Cells(i, 9)

Set cn = CreateObject("ADODB.connection")
strPath = vPath
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)
OutMail.Display
Signature = OutMail.HTMLBody
On Error Resume Next
With OutMail
.To = vTo
.CC = vCC
.BCC = ""
.Subject = vSject
'.HTMLBody = body & Signature
Body = "<p style='font-family:Arial;font-size:14'>" & vDoc1 & "<BR><BR>" & vDoc2 & "<BR><BR>" & vDoc3
.HTMLBody = Body & Signature
If vFiles = "" Then
For Each file In files
vName = file.Name
Set wb = Workbooks.Open(strPath & "\" & vName)
.Attachments.Add wb.FullName
wb.Close

Next
Else
Set wb = Workbooks.Open(strPath & "\" & vFiles)
.Attachments.Add wb.FullName
wb.Close
End If
.send 'or use .Display send
'.Display send
End With
Set OutMail = Nothing
Set OutApp = Nothing

With Application
.ScreenUpdating = True
.EnableEvents = True
End With
Next i
'MsgBox ("Da gui")

End Sub
 
Thử đặt tên file không có dấu cách xem sao.
 
1/ Outlook365 phải không?

2/ Cái folder này ở đâu trong máy tính? Có nằm trên ổ đĩa không hay ở OneDrive?
vba như bên dưới

Set folder = fso.GetFolder(strPath)

----
* Update Office luôn và ngay
** Khôi phục thiết lập của Outlook về mặc định
*** Chỉnh Options của Outlook giống y chang với Outlook ở máy khác mà hoạt động như mong muốn.
 
1/ Outlook365 phải không?

2/ Cái folder này ở đâu trong máy tính? Có nằm trên ổ đĩa không hay ở OneDrive?


----
* Update Office luôn và ngay
** Khôi phục thiết lập của Outlook về mặc định
*** Chỉnh Options của Outlook giống y chang với Outlook ở máy khác mà hoạt động như mong muốn.
folder nằm trên onedrive, máy mới cài nên cơ bản là nó đã được mặc định rồi, office 365, 2 máy tính này y nhau về cấu hình và office hết.
máy cũ đã format và cài lại win mới rồi, quy định khi hết khấu hao họ xóa dữ liệu và cài lại win sạch rồi, trước đây nhận máy mình cũng để mặc định chứ không chỉnh gì hết
Bài đã được tự động gộp:

Tôi nói dấu cách, là khoảng trắng, chứ không phải dấu thanh.
nếu vậy file đính kèm khó đọc, nếu không còn cách nào thì dùng dấu "-" để không bị lỗi
 
folder nằm trên onedrive, máy mới cài nên cơ bản là nó đã được mặc định rồi, office 365, 2 máy tính này y nhau về cấu hình và office hết.
máy cũ đã format và cài lại win mới rồi, quy định khi hết khấu hao họ xóa dữ liệu và cài lại win sạch rồi, trước đây nhận máy mình cũng để mặc định chứ không chỉnh gì hết

Bằng chứng nào chỉ rằng "y nhau" hết vậy bạn? Bạn kiểm tra chưa?
Bạn không chỉnh không có nghĩa nó ở mặc định.

Thử thư mục khác xem còn bị không.

Túm lại giờ máy tính trong tay mình thì mình tự tìm cách khắc phục, chứ đừng nghĩ "y nhau" mà lại có cái khác nhau (là cái đang hỏi).
 
nếu vậy file đính kèm khó đọc, nếu không còn cách nào thì dùng dấu "-" để không bị lỗi
Thì ý tôi là vậy. Không dùng khoảng trắng thì có nhiều cách: Dùng ký tự -, _, viết hoa đầu từ, ...
Tôi thấy loay hoay tìm nguyên nhân, khẳng định "máy giống nhau" rồi cũng không ra nguyên nhân, thì cách tốt nhất là tránh lỗi thay vì khắc phục lỗi mà không biết lỗi từ đâu.
 
Cần khẳng định một điều rằng: Vấn đề chủ thớt đang hỏi không phải là lỗi, mà đó là một tính năng hoàn chỉnh, hoàn toàn tốt lành.

Khả năng cao là do đính kèm tập tin từ OneDrive nên Outlook nhận là từ internet, không phải từ ổ đĩa máy tính, vậy nên đường dẫn (url) của tập tin sẽ được chuyển về định dạng html (URL-encoded).

Không rành về html, thì ngay trên Excel cũng có thể kiểm tra =encodeurl(" ") = "%20"
 
Cần khẳng định một điều rằng: Vấn đề chủ thớt đang hỏi không phải là lỗi, mà đó là một tính năng hoàn chỉnh, hoàn toàn tốt lành.

Khả năng cao là do đính kèm tập tin từ OneDrive nên Outlook nhận là từ internet, không phải từ ổ đĩa máy tính, vậy nên đường dẫn (url) của tập tin sẽ được chuyển về định dạng html (URL-encoded).

Không rành về html, thì ngay trên Excel cũng có thể kiểm tra =encodeurl(" ") = "%20"
Trước đây máy tính cũ vẫn xài trên onedrive, máy mới và cũng vẫn trùng tên nhau.
 
Web KT
Back
Top Bottom