2010-04-03 47 views
9

Làm cách nào để đính kèm tệp có tên rất thân thiện (như tệp có số Id phiên trong đó) nhưng có tệp đính kèm dưới dạng tên khác?Thêm tệp đính kèm vào một Email .NET

Tên tệp được đề cập có ID phiên trong đó để tránh tên xung đột trên máy chủ web nhưng khi tôi đính kèm tên vào tệp, một tên thân thiện hơn là thích hợp hơn.

Có cách nào để đính kèm tệp với tên không thân thiện như một tên khác để khi người dùng nhận được email, anh ta có thể cho biết tên của nội dung của tệp là gì? Tôi ghét phải tạo một thư mục duy nhất chỉ để đặt một tên tệp không duy nhất trong đó với mục đích chỉ cần gắn nó vào một email.

Dim mailMessage As System.Net.Mail.MailMessage = New System.Net.Mail.MailMessage() 
mailMessage.Attachments.Add("C:\My\Code\BESI\BESI\Files\Invoice-djopyynrgek4p4qadn31dxxs.pdf", ????) 

Trả lời

19

Vâng - bạn có thể làm những gì bạn đang cố gắng làm bằng cách sử dụng hàm tạo khác cho Tệp đính kèm(). Đáng buồn thay, không có ai lấy tên tệp và tên riêng biệt, nhưng có một tên mất Stream và một tên riêng biệt. Và có các phương pháp trợ giúp trên System.IO.File giúp dễ dàng nhận luồng tệp từ tên tệp.

Imports System.Net.Mail 
Imports System.IO 

Dim mailMessage as MailMessage = New MailMessage() 
Dim stream as FileStream = File.OpenRead("C:\My\Code\BESI\BESI\Files\Invoice-djopyynrgek4p4qadn31dxxs.pdf") 
Dim attachment as Attachment = New Attachment(stream, "FriendlyName.pdf") 
mailMessage.Attachments.Add(attachment) 

'Be sure to Dispose stream after you've sent the mail. 

(cú pháp VB của tôi là yếu, do đó có thể có một số sai lầm ngớ ngẩn trong đó, nhưng hy vọng ý nghĩa của tôi là rõ ràng, và những người chắc chắn các lớp phải/phương pháp để sử dụng.)

+0

Bravo! Làm việc như người ở. Cảm ơn nhiều. – ChadD

Các vấn đề liên quan