Tạo và đặt nội dung cho Email
Tạo Tin Nhắn Email Mới
Lớp MailMessage đại diện cho một tin nhắn email và cho phép các nhà phát triển tạo tin nhắn email mới. Các thuộc tính email cơ bản như From, To, Subject và body có thể dễ dàng được gán cho tin nhắn mail mới tạo. Tương tự, chúng ta có thể lưu tin nhắn mail vào các định dạng khác nhau như EML, MSG và MHTML.
- Tạo một thể hiện của lớp MailMessage.
- Đặt các thuộc tính của tin nhắn email.
- Lưu tin nhắn email ở các định dạng khác nhau.
Đoạn mã dưới đây cho bạn cách tạo một email mới với các thuộc tính khác nhau.
Chỉ định Nhiều Người Nhận
MailMessage đại diện cho một tin nhắn email. Các thể hiện của lớp MailMessage được sử dụng để xây dựng các tin nhắn email được truyền tới máy chủ SMTP bằng lớp SmtpClient. Chủ đề này trình bày cách chỉ định nhiều địa chỉ email. Địa chỉ email có thể được chỉ định bằng lớp MailMessage. Các địa chỉ email được sử dụng trong lớp MailMessage là:
- To - Các địa chỉ người nhận có thể được chỉ định trong trường ‘To’. Người nhận trong trường ‘To’ là khán giả chính của tin nhắn. Có thể có hơn một địa chỉ người nhận.
- Cc - CC nghĩa là "carbon copy" (bản sao), hoặc "courtesy copy" (bản sao lễ phép), cho phép bạn thêm người nhận email cần xem nội dung nhưng không nhất thiết phải hành động. Ví dụ, quản lý hoặc thành viên nhóm cần biết về cuộc trò chuyện. Với Aspose.Email, các địa chỉ CC có thể được chỉ định trong mã của bạn. Như vậy, email tự động hoặc mọi email tới một địa chỉ nhất định có thể được sao chép tới nhân viên liên quan.
- Bcc - Bcc, bản sao giấu (blind carbon copy), cho phép bạn gửi email cho một người nhận được ẩn khỏi các người nhận khác. Khi CC xuất hiện trong thông tin email mà người nhận chính thấy, Bcc thì không. Nó dùng để thông báo ẩn.
Để chỉ định nhiều địa chỉ email trong một tin nhắn, hãy thực hiện các bước sau:
- Tạo một thể hiện của lớp MailMessage.
- Chỉ định địa chỉ From và nhiều địa chỉ To, Cc và Bcc bằng thể hiện MailMessage.
- Tạo một thể hiện của lớp SmtpClient và gửi email bằng phương thức Send.
Mẫu mã dưới đây cho thấy cách chỉ định nhiều địa chỉ To, CC và BCC.
Thay đổi địa chỉ email thành tên thân thiện
Các mẫu lập trình dưới đây minh họa cách đổi địa chỉ email thành tên thân thiện trong một tin nhắn email. Tên thân thiện là tên dễ đọc hơn so với địa chỉ email, ví dụ John Smith thay vì js346@domain.com. Khi gửi email, chúng ta có thể gắn tên thân thiện với địa chỉ email trong constructor của lớp MailMessage.
Để thay đổi địa chỉ email thành tên thân thiện trong một email, hãy thực hiện các bước sau:
- Tạo một thể hiện của lớp MailMessage và chỉ định địa chỉ email trong các trường To và From cùng với tên thân thiện.
- Chỉ định địa chỉ email Cc và Bcc cùng với tên thân thiện bằng cách gọi hàm khởi tạo lớp MailMessage trong thể hiện MailMessage.
- Tạo một thể hiện của lớp SmtpClient và gửi email bằng phương thức Send.
Đoạn mã sau cho thấy cách hiển thị Tên cho các địa chỉ email.
Đặt Phần Thân Email
Lớp MailMessage đại diện cho một tin nhắn email. Các thể hiện của lớp MailMessage được sử dụng để xây dựng các tin nhắn email được truyền tới máy chủ SMTP để gửi bằng lớp SmtpClient. Phần thân mail có thể được chỉ định bằng lớp MailMessage. Một email có thể có nhiều phần thân. Có hai loại phần thân mail trong lớp MailMessage:
- Phần thân dạng HTML
- Phần thân dạng Văn bản
Ngoài HtmlBody và TextBody, Aspose.Email còn có hai thuộc tính chỉ đọc khác liên quan đến phần thân mail:
- IsBodyText: cho người dùng biết phần thân là văn bản.
- IsBodyHtml: cho người dùng biết phần thân là HTML hay văn bản thuần.
Bài viết này chỉ ra cách xác định nội dung văn bản thuần hoặc HTML, đặt văn bản thay thế và mã hoá phần thân email.
Đặt Phần Thân HTML
HtmlBody được dùng để chỉ định nội dung HTML của phần thân tin nhắn. HtmlBody phải được đặt giữa các thẻ . Đoạn mã dưới đây cho bạn thấy cách đặt phần thân HTML.
Đặt Văn Bản Thay Thế
Sử dụng lớp AlternateView để chỉ định các bản sao của một tin nhắn email ở các định dạng khác nhau. Ví dụ, nếu bạn gửi tin nhắn dạng HTML, bạn cũng có thể muốn cung cấp phiên bản văn bản thuần để trường hợp một số người nhận sử dụng trình đọc email không hiển thị nội dung HTML. Lớp này có hai thuộc tính, LinkedResources và BaseUri, được dùng để giải quyết URL trong nội dung email.
- LinkedResources là một tập hợp các đối tượng LinkedResources. Khi hiển thị, các URL trong nội dung email sẽ được so sánh với các URL trong Content Link của mỗi đối tượng LinkedResources trong tập hợp, và được giải quyết.
- BaseUri được trình đọc email sử dụng để giải quyết các URL tương đối trong phần thân, và cũng để giải quyết các URL liên kết nội dung tương đối trong bộ sưu tập LinkedResources.
Đoạn mã sau cho thấy cách đặt văn bản thay thế.
Các Tính Năng của MailMessage
Cái MailMessage class đại diện cho nội dung của một tin nhắn email. Các thể hiện của MailMessage class được sử dụng để xây dựng một tin nhắn email được truyền tới máy chủ SMTP để giao bằng cách sử dụng SmtpClient class. Bài viết này chỉ ra cách sử dụng MailMessage Các tính năng tiện ích của class để kiểm soát các tính năng email sau:
- Date and time - Thông qua MailMessage Thuộc tính class Date cho phép chúng ta lấy hoặc đặt ngày và thời gian của email.
- Mức độ ưu tiên của tin nhắn - MailPriority lớp xác định các mức độ ưu tiên khi gửi email. Nó có thể là thấp, bình thường hoặc cao. Độ ưu tiên ảnh hưởng đến tốc độ truyền và giao nhận.
- Mức độ nhạy cảm của tin nhắn - MailSensitivity lớp xác định năm mức độ nhạy cảm.
- Thông báo giao nhận - Thông báo giao nhận cho người gửi biết rằng email họ đã gửi đã được chuyển đến hộp thư đến của người nhận.
Theo mặc định, ngày là ngày thực tế mà tin nhắn được gửi, và thời gian là thời gian nó được gửi, như hiển thị trong Microsoft Outlook. Tuy nhiên, thời gian giao email thực tế được thêm bởi máy chủ SMTP trong phần tiêu đề email. Ví dụ, dưới đây là một tiêu đề email phổ biến, trong đó Date đặt trường Date.
Đoạn mã dưới đây minh họa cách sử dụng từng tính năng đã đề cập ở trên.
Yêu cầu Biên nhận Đọc
Các mẫu lập trình dưới đây cho thấy cách bạn có thể yêu cầu biên nhận đã đọc. The MailMessage lớp DeliveryNotificationOptions Thuộc tính enumeration mô tả các tùy chọn thông báo giao nhận cho một email. Để yêu cầu biên nhận đã đọc sau khi gửi email, hãy thực hiện các bước sau:
- Tạo một đối tượng của MailMessage lớp.
- Chỉ định người gửi, người nhận và phần thân HTML cho email trong MailMessage thể hiện.
- Chỉ định DeliveryNotificationOptions trong các MailMessage các thể hiện.
- Tạo một đối tượng của SmtpClient lớp và gửi email bằng phương thức Send.
Yêu cầu biên nhận đọc có thể không luôn được chấp nhận vì:
- Một client email có thể không thực hiện chức năng đó.
- Người dùng cuối có thể đã tắt chức năng này.
- Người dùng cuối có thể chọn không gửi.
Đoạn mã sau cho thấy cách yêu cầu biên nhận đọc.
Đặt Tiêu đề Email
Tiêu đề email đại diện cho một tiêu chuẩn Internet và RFC định nghĩa các trường tiêu đề được bao gồm trong các tin nhắn email trên Internet. Tiêu đề email có thể được chỉ định bằng lớp MailMessage. Các loại tiêu đề thông thường được định nghĩa trong lớp HeaderType. Đây là một lớp sealed hoạt động giống như một enumeration thông thường.
Thông thường một tiêu đề email chứa các trường sau:
- To: Địa chỉ người nhận có thể được chỉ định trong trường To. Người nhận trong trường To là khán giả chính của tin nhắn. Có thể có hơn một địa chỉ người nhận.
- From: Trường này hiển thị địa chỉ email của người gửi tin nhắn.
- Cc: Cho phép người dùng gửi tin nhắn như một "Carbon Copy" hoặc "Courtesy Copy". Nghĩa là người nhận không được mong đợi trả lời hay hành động. Thông thường, nhân viên giám sát được thông báo qua CC.
- Bcc: Viết tắt của Blind Carbon Copy, đề cập đến việc gửi một tin nhắn cho nhiều người nhận sao cho những người nhận không thấy danh sách đầy đủ các người nhận. Nó được sử dụng để thông báo ẩn.
- ReplyTo: Trường tiêu đề này nhằm chỉ ra nơi người gửi muốn nhận phản hồi.
- Subject: Tiêu đề, đề mục, chủ đề. Thường được sử dụng làm chỉ báo chuỗi cho các tin nhắn trả lời hoặc bình luận về các tin nhắn khác.
- Date: Tiêu đề này chỉ định ngày (và thời gian). Thông thường đây là ngày mà tin nhắn được soạn và gửi.
- XMailer: Thông tin về phần mềm khách hàng của người gửi. Ví dụ: X-Mailer: Aspose.Email XMailer được các client email sử dụng. Các client email khác nhau sẽ có giá trị XMailer khác nhau. Giá trị XMailer của MS Outlook là Microsoft Office Outlook, Build 11.0.5510. Nó bị người nhận email hoặc trình đọc email bỏ qua.
Thông thường, một tiêu đề email trông như sau:
Reply-To: reply@reply.com
From: sender@sender.com
To: guangzhou@guangzhoo.com
Subject: test mail
Date: 6 Mar 2006 8:2:2 +0800
X-Mailer: Aspose.Email
Để tùy chỉnh tiêu đề email, thực hiện các bước sau:
- Tạo một đối tượng của MailMessage lớp.
- Chỉ định To, From, CC, Bcc, ReplyTo, Subject, Date & XMailer bằng một thể hiện của MailMessage.
- Tạo một đối tượng của MimeHeader lớp và chỉ định tiêu đề bí mật.
- Thêm tiêu đề bí mật vào MailMessage thể hiện.
Đoạn mã dưới đây cho bạn cách đặt tiêu đề email.
Đoạn mã trên tạo ra một tiêu đề email ở định dạng sau. Bạn có thể quan sát bằng cách mở tệp kết quả "MsgHeaders.msg" trong Microsoft Outlook và xem Thuộc tính.
Reply-To: reply@reply.com
From: sender@sender.com
To: receiver1@receiver.com
CC: receiver2@receiver.com
BCC: receiver3@receiver.com
Subject: test mail
Date: 6 Mar 2006 8:2:2 +0800
X-Mailer: Aspose.Email
secret-header: mystery
Chèn Tiêu đề tại Vị trí Cụ thể
Cái Thêm phương thức của HeadersCollection lớp chèn tiêu đề vào cuối bộ sưu tập. Tuy nhiên, đôi khi có thể cần chèn tiêu đề vào vị trí cụ thể. Trong trường hợp đó, Thêm phương thức sẽ không hữu ích. Để thực hiện điều này, sử dụng Insert phương thức của HeadersCollection. Nếu bộ sưu tập chứa các header cùng tên, header này sẽ được chèn trước các header khác có cùng tên. Đoạn mã dưới đây cho bạn thấy cách chèn header ở vị trí cụ thể.
Thêm Tiêu đề Tùy chỉnh vào email
Các mẫu lập trình dưới đây minh họa cách chỉ định một header tùy chỉnh trong một tin nhắn email. Header email có thể được chỉ định bằng MailMessage lớp. Để chỉ định một header tùy chỉnh trong một tin nhắn email, vui lòng thực hiện các bước sau:
- Tạo một đối tượng của MailMessage lớp.
- Chỉ định các giá trị to, from và subject bằng thể hiện MailMessage.
- Thêm header bí mật vào MailMessage thể hiện.
- Tạo một thể hiện của lớp SmtpClient và gửi email bằng phương thức Send.
Đoạn mã sau đây cho bạn thấy cách thêm tiêu đề tùy chỉnh vào email.