by
Neon Quach
9. April 2010 02:42
Ở bài viết trước Gửi Email động trong ASP.NET chúng ta đả được làm quen với đối tượng MailMessage và 1 số thuộc tính quan trong của nó trong việc gửi email.
Giờ chúng ta sẻ làm quen với việc làm thế nào để đính kèm tập tin khi send mail.
Tại source code tại: http://code2code.info/post/send-dynamic-email-in-aspnet.aspx và thêm mới 1 section bao gồm 1 nhãn named là Đính kèm và 1 FileUpload control.
<tr>
<td>Đính kèm:</td>
<td>
<asp:FileUpload ID="FileUpload1" runat="server" Width="250px" />
</td>
</tr>
Chỉnh sửa 1 tí về cấu hình smtp, mình sẻ send mail dùng stmp của google, vì có rất nhiều bạn send mail và message cho mình nhờ giúp đở về việc send email sử dụng mail server của google.
<system.net>
<mailSettings>
<smtp>
<network host="smtp.gmail.com" port="587" userName="quachngochoangnguyen@gmail.com" password="your password"/>
</smtp>
</mailSettings>
</system.net>
Ở đây mình cũng sẻ nói thêm luôn là nếu send mail thông qua mail server của google thì chúng ta sẻ phải enable SSL của đối tượng SmtpClient.
Chúng ta sẻ chỉnh sửa hàm SendMail để nhận đính kèm:
C#:
if (FileUpload1.HasFile)
{
mail.Attachments.Add(new Attachment(FileUpload1.PostedFile.InputStream, FileUpload1.FileName));
}
client.Send(mail);
VB:
client.EnableSsl = isSSL
If FileUpload1.HasFile Then
mail.Attachments.Add(New Attachment(FileUpload1.PostedFile.InputStream, FileUpload1.FileName))
End If
client.Send(mail)
Constructor của Attachment nhận vào 2 tham số bao gồm: nội dụng dạng Stream của file, và tên file, Press F5 lên và tiến hành send mail có đính kèm:

và kết quả:

Hope this help
Check out my code:http://code2code.googlecode.com/svn/trunk/SendingDynamicEmailWithAttachment
SendingDynamicEmailWithAttachment.rar (8.38 kb)