C#'ta Özelleştirilmiş Seçeneklerle E-posta Mesajları Oluştur
Yeni E-posta Mesajı Oluştur
Yeni bir e-posta mesajı oluşturmak için kullanabilirsiniz MailMessage sınıf. MailMessage sınıfı ayrıca oluşturulan e-posta mesajının göndericinin e-posta adresi, alıcıların e-posta adresleri, e-posta konusu ve HTML formatındaki gövde içeriği gibi özelliklerini başlatır.
Yeni bir e-posta mesajı oluşturmak ve özelliklerini ayarlamak için aşağıdaki kodu, ayrıntılı adımlarla göz önünde bulundurun.
- Yeni bir … örneği oluşturun MailMessage sınıf.
- Şunu ayarlayın: From gönderenin e-posta adresine yönelik özellik.
- Şunu ayarlayın: To alıcıların virgülle ayrılmış e-posta adresleri listesine yönelik özellik.
- Şunu ayarlayın: Subject e-posta konusuna yönelik özellik.
- Şunu ayarlayın: HtmlBody e-posta gövdesinin HTML içeriği için özellik.
// Create a new instance of MailMessage class
var message = new MailMessage
{
From = "from@domain.com",
To = "to1@domain.com, to2@domain.com",
Subject = "New message",
HtmlBody = @"<!DOCTYPE html>
<html>
<head>
<style>
h3{font-family:Verdana, sans-serif;color:#000000;background-color:#ffffff;}
p {font-family:Verdana, sans-serif;font-size:14px;font-style:normal;
font-weight:normal;color:#000000;background-color:#ffffff;}
</style>
</head>
<body>
<h3>New message</h3>
<p>This is a new message created by Aspose.Email.</p>
</body>
</html>"
};
Varsayılan Metin Kodlamasını Ayarla
Aşağıdaki özellikler için varsayılan metin kodlamasını ayarlayın:
- Kimden: Görünen ad
- Kime: Görünen ad
- Subject
- Gövde
Kullan MailMessage.PreferredTextEncoding yukarıdaki özelliklerdeki tüm metnin e-posta mesajında doğru bir şekilde kodlanmasını sağlayan özellik. Aşağıdaki kod parçacığı, e-posta adresleri, konu ve gövde için görüntü adı olarak bir Fransızca kelime nasıl kullanılacağını gösterir.
Mail Gövdesini Ayarla
Düz Metin Gövdesi Ayarla
Bir e-posta gövdesi şunu kullanarak belirtilebilir: Gövde özellik MailMessage sınıf.
// Declare message as MailMessage instance
var eml = new MailMessage
{
// Specify HtmlBody
Body = "This is a plain text body"
};
HTML Gövdesi Ayarla
Bir e-posta gövdesi ayrıca şunu kullanarak belirtilebilir: HtmlBody özellik MailMessage sınıf.
// Declare message as MailMessage instance
var eml = new MailMessage
{
// Specify HtmlBody
HtmlBody = "<html><body>This is the HTML body</body></html>"
};
Alternatif Metin Ayarla
EML dosyasındaki alternatif görünüm, e-posta içeriğinin ek bir temsili olup, e-posta mesajının farklı bir şekilde render edilmesini sağlar. Örneğin, mesajı HTML olarak gönderdiyseniz, bazı alıcıların HTML içeriğini gösteremeyen e-posta okuyucuları için düz metin sürümünü de sağlamak isteyebilirsiniz. Bu amaçla şunu kullanın: AlternateView sınıf. Bu sınıfın iki özelliği vardır, LinkedResources ve BaseUri, ki bu da e-posta içeriğindeki URL’leri çözmek için kullanılır.
- LinkedResources bir koleksiyonudur LinkedResource nesneler. Render edildiğinde, e-posta içeriğindeki URL’ler önce her birinin Content Link’indeki URL’lerle eşleştirilir. LinkedResource nesne içinde LinkedResources koleksiyon ve çözülür.
- BaseUri posta okuyucu tarafından gövde içindeki göreli URL’leri ve ayrıca içeriğe bağlanan göreli URL’leri çözmek için kullanılır, şu içinde: LinkedResources koleksiyon.
Alternatif metin ayarlamak için aşağıdaki kodu ayrıntılı adımlarla inceleyin.
- Bir örnek oluştur MailMessage sınıf.
- Oluştur AlternateView dizgede belirtilen içeriği kullanarak bir e-posta mesajını görüntülemek için.
- alternatif metin eklemek için şunu kullanın: Ekle metodu MailMessage.AlternateViews koleksiyon.
// Declare message as MailMessage instance
var eml = new MailMessage();
// Creates AlternateView to view an email message using the content specified in the //string
var alternate = AlternateView.CreateAlternateViewFromString("Alternate Text");
// Adding alternate text
eml.AlternateViews.Add(alternate);
E-posta Gövde Kodlamasını Belirt
Aspose.Email şunu kullanır: BodyEncoding özellik MailMessage e-posta gövdesi kodlamasını belirtmek için sınıf. Örneğin:
eml.BodyEncoding = Encoding.UTF8;
Birden Çok Alıcı Belirt
Bir e-posta mesajının alıcılarını belirtmenin üç yolu vardır: To, CC veya BCC alanlarını kullanmak.
-
To alanı mesajınızın ana alıcısıdır. Bu alana bir ya da daha fazla e-posta adresi, virgülle ayrılarak girilebilir. To alanı her e-posta mesajı için zorunludur.
-
CC alanı karbon kopya (Carbon Copy) anlamına gelir. Mesajınızı konu ile ilgili veya ilgili diğer kişilere bir kopya göndermek için kullanılır. CC alanı isteğe bağlıdır ve birden fazla e-posta adresi içerebilir. CC alanındaki alıcılar, mesajı kimlerin aldığını görebilir.
-
BCC alanı gizli karbon kopya (Blind Carbon Copy) anlamına gelir. CC alanına benzer, fakat BCC alanındaki alıcılar diğer alıcılardan gizlidir. BCC alanı, bazı alıcıların gizliliğini korumak veya gelen kutularını yanıtlarla doldurmamak için yararlıdır. BCC alanı isteğe bağlıdır ve birden fazla e-posta adresi içerebilir.
Bir e-posta mesajı için birden fazla alıcı belirtmek üzere aşağıdaki kodu, ayrıntılı adımlarla inceleyin.
Kod adımları:
- Yeni bir … örneği oluşturun MailMessage sınıf.
- Şunu ayarlayın: From gönderenin e-posta adresine yönelik özellik.
- Şunu ayarlayın: To özellik, birincil alıcıların e-posta adresleri dizisine.
- Şunu ayarlayın: CC özellik, e-postanın bir kopyasını alacak alıcıların e-posta adresleri dizisine.
- Şunu ayarlayın: Bcc özellik, e-postanın gizli karbon kopyasını alacak alıcıların e-posta adresleri dizisine.
Kod örneği:
var eml = new MailMessage
{
// Specify From address
From = "sender@sender.com",
// Specify recipients’ mail addresses
To = {"receiver1@receiver.com", "receiver2@receiver.com", "receiver3@receiver.com"},
// Specify CC addresses
CC = {"CC1@receiver.com", "CC2@receiver.com"},
// Specify BCC addresses
Bcc = {"Bcc1@receiver.com", "Bcc2@receiver.com"}
};
E-posta Adreslerine Görüntüleme Adları Ekle
Bir e-posta adresine ek olarak, görüntüleme adı göndericiyi ya da alıcıyı tanımlamak için eklenebilir. Bu, kişinin tam adı, takma adı veya başka bir tanımlayıcıyı içerebilir.
Bir e-posta mesajı bir e-posta istemcisi ya da webmail arayüzünde görüntülendiğinde, görüntüleme adı genellikle e-posta adresinin yanında gösterilir; bu, kullanıcının mesajın kimden geldiğini ya da kime hitap ettiğini daha kolay tanımasına yardımcı olur. Bir e-posta mesajına e-posta adreslerine görüntüleme adları eklemek için aşağıdaki kodu ayrıntılı adımlarla inceleyin:
- Bir dosyadan e-posta mesajını şunu kullanarak yükleyin:
MailMessage.Loadmetod. - e-posta göndereni şunu kullanarak ayarlayın:
Fromyeni bir … oluşturarak eml nesnesinin özelliğiMailAddressgönderenin e-posta adresi ve görüntüleme adını içeren nesne. - E-postaya alıcı eklemek için şunu kullanın:
Toeml nesnesinin özelliği, gerekirse CC (Karbon Kopya) listesini kullanarak ekleyinCCözellik, BCC (Gizli Karbon Kopya) listesini kullanarakBccözellik ve çağırınAddyeni bir … ile yöntemMailAddressalıcıya ait e-posta adresi ve görüntüleme adını içeren nesne.
Kod örneği:
// Load eml from file
var eml = MailMessage.Load(Data.Email/"test.eml");
eml.From = new MailAddress("TimothyFairfield@from.com", "Timothy Fairfield");
// A To address with a friendly name can also be specified like this
eml.To.Add(new MailAddress("kyle@to.com", "Kyle Huang"));
// Specify Cc and Bcc email address along with a friendly name
eml.CC.Add(new MailAddress("guangzhou@cc.com", "Guangzhou Team"));
eml.Bcc.Add(new MailAddress("ahaq@bcc.com", "Ammad ulHaq "));
Ek Özellikleri Ayarla
Aspose.Email ile şunun ek özelliklerini kullanabilirsiniz: MailMessage sınıf örnek:
-
Date özellik - bir e-postanın tarih ve saatini ayarlar. Varsayılan olarak, tarih mesajın gönderildiği gerçek tarih, saat ise Outlook tarafından gösterildiği gibi gönderildiği zamandır. Ancak, gerçek e-posta teslim zamanı SMTP sunucusu tarafından posta üstbilgisinde eklenir. Örneğin, aşağıda yaygın bir posta üstbilgisi bulunmaktadır, burada Date Date alanını ayarlar.
// For complete examples and data files, please go to https://github.com/aspose-email/Aspose.Email-for-.NET // Add by SMTP server in delivery emails Received: from ip-123.56.99.216.dsl-cust.ca.inter.net ([216.99.56.123]) by Aspose.secureserver.net with MailEnable ESMTP; Thu, 22 Feb 2007 13:58:57 -0700 // Add by SMTP server in delivery emails Return-Path: <xyz@oikoscucine.it> // Add by SMTP server in delivery emails Received: from 195.120.225.20 (HELO mail.oikoscucine.it) by aspose.com with esmtp (:1CYY+<LA*- *1WK@) id Q8,/O/-.N83@7-9M for abc@aspose.com; Thu, 22 Feb 2007 20:58:51 +0300 From: "XYZ" <xyz@oikoscucine.it> To: <abc@aspose.com> Subject: For ABC // Date will set the Date field, outlook will show this as Date: Thu, 22 Feb 2007 20:58:51 +0300 Message-ID: <01c756c4$41b554d0$6c822ecf@dishonestyinsufferably> MIME-Version: 1.0 Content-Type: multipart/alternative; boundary="----=_NextPart_000_0006_01C7569A.58DF4CD0" X-Mailer: Microsoft Office Outlook, Build 11.0.5510 X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2800.1106 Thread-Index: Aca6Q:=ES0M(9-=(<.<1.<Q9@QE6CD== X-Read: 1 -
MailPriority enum - e-posta mesajı göndermek için öncelik seviyelerini belirtir. Düşük, normal veya yüksek olabilir. Öncelik iletim hızı ve teslimatı etkiler.
-
MailSensitivity enum - beş duyarlılık seviyesini belirtir.
-
XMailer- e-posta mesajını oluşturan yazılımı belirtir.
Aşağıdaki kod parçacığı, yukarıda tartışılan her bir özelliğin nasıl kullanılabileceğini göstermektedir.
var eml = new MailMessage("sender@gmail.com", "receiver@gmail.com", "Some subject", "Some body text")
{
Date = DateTime.Now,
Priority = MailPriority.High,
Sensitivity = MailSensitivity.Normal,
Xmailer = "Aspose.Email"
};
Okuma Makbuzu İste
Talep etmek için bir okuma makbuzu, Aspose.Email kullanın DeliveryNotificationOptions özellik MailMessage sınıf. Bu özellik şu değerleri içerir: DeliveryNotificationOptions enum.
Aşağıdaki kod örneğine göz atın:
// Create an Instance of MailMessage class
var eml = new MailMessage
{
// Specify From, To, HtmlBody, DeliveryNotificationOptions field
From = "sender@sender.com",
To = "receiver@receiver.com",
HtmlBody = "<html><body>This is the Html body</body></html>",
DeliveryNotificationOptions = DeliveryNotificationOptions.OnSuccess
};
eml.Headers.Add("Return-Receipt-To", "sender@sender.com");
eml.Headers.Add("Disposition-Notification-To", "sender@sender.com");
// Create an instance of SmtpClient Class
var client = new SmtpClient
{
// Specify your mailing host server, Username, Password and Port No
Host = "smtp.server.com",
Username = "Username",
Password = "Password",
Port = 25
};
try
{
// Client.Send will send this message
client.Send(eml);
// Display ‘Message Sent’, only if message sent successfully
Console.WriteLine(@"Message sent");
}
catch (Exception ex)
{
System.Diagnostics.Trace.WriteLine(ex.ToString());
}
Not: Okuma makbuzu istekleri her zaman karşılanmayabilir çünkü:
- Bir mail istemcisi bu işlevi uygulamayabilir.
- Son kullanıcı bu işlevi devre dışı bırakmış olabilir.
- Son kullanıcı bunları göndermemeyi tercih edebilir.
E-posta Üst Bilgilerini Özelleştir
E-posta üstbilgileri bir Internet standardını temsil eder ve RFC, Internet e-posta mesajlarına dahil edilen üstbilgi alanlarını tanımlar. Bir e-posta üstbilgisi şu şekilde belirtilebilir: MailMessage sınıf. Ortak üstbilgi tipleri şurada tanımlanır: HeaderType sınıf. Normal bir enum gibi çalışan mühürlenmiş bir sınıftır.
Normalde, bir e-posta üst bilgisi şu alanları içerir:
- To: Alıcı adresleri To alanında belirtilebilir. To alanındaki alıcılar mesajın birincil hedef kitlesidir. Birden fazla alıcı adresi belirtilebilir.
- From: Bu alan, mesajı gönderenin e-posta adresini gösterir.
- Cc: Kullanıcıların bir mesajı "Carbon Copy" (Karbon Kopya) ya da "Courtesy Copy" (Nezaket Kopyası) olarak göndermesine olanak tanır. Alıcıdan yanıt ya da eylem beklenmez. Genellikle, yöneticiler Cc ile bilgilendirilir.
- Bcc: Gizli Karbon Kopya (Blind Carbon Copy) anlamına gelir; bu, bir alıcıya diğer alıcılardan gizli olarak e-posta göndermenizi sağlar.
- ReplyTo: Bu başlık alanı, göndericinin yanıtların nereye gitmesini istediğini belirtmek içindir.
- Subject: Başlık, konu. Çoğunlukla diğer mesajlara yanıt verirken veya yorum yaparken bir konu göstergesi olarak kullanılır.
- Date: Bu üst bilgi bir tarih (ve saat) belirtir. Normalde bu, mesajın oluşturulduğu ve gönderildiği tarihtir.
- XMailer: Gönderenin istemci yazılımı hakkında bilgi. Örnek: X-Mailer: Aspose.Email XMailer e-posta istemcileri tarafından kullanılır. Farklı e-posta istemcileri farklı XMailer değerlerine sahip olur. MS Outlook’un XMailer değeri Microsoft Office Outlook, Build 11.0.5510’dur. Bu değer e-posta alıcısı veya okuyucu tarafından yok sayılır.
Genellikle, bir e-posta üstbilgisi şu şekilde görünür:
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
Bir e-posta üst bilgisini özelleştirmek için şu kod adımlarını izleyin:
- Şunun bir örneğini oluştur MailMessage sınıf.
- To, From, Cc, Bcc, ReplyTo, Subject, Date ve XMailer’ı bir örnek kullanarak belirtin MailMessage.
- Şunun bir örneğini oluştur MimeHeader sınıf ve özel başlığı belirt.
- Özel başlığı şuna ekle: MailMessage örnek.
Aşağıdaki kod parçacığı, e-posta başlıklarını nasıl ayarlayacağınızı gösterir.
var eml = new MailMessage
{
ReplyToList = "reply@reply.com",
From = "sender@sender.com",
To = "receiver1@receiver.com",
CC = "receiver2@receiver.com",
Bcc = "receiver3@receiver.com",
Subject = "test mail",
Date = new System.DateTime(2006, 3, 6),
XMailer = "Aspose.Email"
};
Yukarıdaki kod parçacığı, aşağıdaki biçimde bir e-posta başlığı üretir:
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
Belirli Bir Konuma Başlık Ekle
Bu Ekle metodu HeaderCollection sınıf, koleksiyonun sonuna bir başlık ekler. Ancak, bazen belirli bir konuma başlık eklemek gerekli olabilir. Böyle bir durumda, Ekle yöntem yardımcı olmayacak. Bunu başarmak için şunu kullanın: Insert metodu HeaderCollection. Koleksiyon aynı ada sahip başlıklar içeriyorsa, bu başlık aynı ada sahip diğer başlıkların önüne eklenecektir. Aşağıdaki kod parçacığı, belirli bir konuma başlık eklemenin nasıl yapılacağını gösterir.
eml.Headers.Insert("Received", "Value");
Özel Başlıklar Ekle
E-posta başlığı, şunu kullanarak belirtilebilir: MailMessage sınıf. Bir e-posta mesajında özel başlık belirtmek için aşağıdaki kod örneğini göz önünde bulundurun:
eml.Headers.Add("secret-header", "mystery");
Yukarıdaki kod parçacığı, aşağıdaki biçimde bir e-posta başlığı üretir:
secret-header: mystery
İmzalı Mesajlar Oluştur
Aspose.Email API, sertifikalar kullanarak imzalı mesajlar oluşturma yeteneği sağlar. AttachSignature metodu MailMessage class, bir mesajı kaydetmek ya da hatta göndermek için imzalamada kullanılabilir SmtpClient.
Bir Mesajı İmzala
Aşağıdaki kod parçacığı, bir Mesajı Nasıl İmzalanacağını gösterir.
Ayrılmış Sertifika Seçeneğini Kullanma
Web tabanlı e-posta istemcileri İmzalı bir mesajın gövde içeriğini göstermek isteyebilir. Bu, sertifikayı web tabanlı e-posta istemcilerine göndermeden önce ayırarak çözülebilir. Aşırı yüklenmiş methoddaki ayrılmış bayrağı AttachSignature bunu sağlamak için kullanılabilir. true olarak ayarlanırsa, sertifika e-postadan ayrılır ve tersine. Web tabanlı istemcilerde İmzalı Mesaj gövdesini görmek için oluşturmanız gerekir MailMessage ayrılmış imza ile. Aşağıdaki kod parçacığı, ayrılmış sertifika seçeneğini nasıl kullanacağınızı gösterir.