E-posta Oluşturma ve Yönetme

Yeni Bir E-posta Mesajı Oluşturma

Bu MailMessage sınıf bir e-posta mesajını temsil eder ve geliştiricilerin yeni e-posta mesajı oluşturmasını sağlar. From, To, Subject ve body gibi temel e-posta özellikleri, yeni oluşturulan e-posta mesajına kolayca eklenebilir. Benzer şekilde e-posta mesajını EML, MSG ve MHTML gibi farklı biçimlerde kaydedebiliriz.

  • Şunun bir örneğini oluştur MailMessage sınıf.
  • E-posta mesajı özelliklerini ayarla.
  • E-posta mesajını farklı biçimlerde kaydet.

Aşağıdaki kod parçacığı, farklı özelliklere sahip yeni bir e-posta nasıl oluşturulacağını gösterir.

Birden Fazla Alıcı Belirtme

Bu MailMessage nesne bir e-posta mesajını temsil eder. Şunun örnekleri: MailMessage sınıf, bir SMTP sunucusuna gönderilen e-posta mesajlarını oluşturmak için kullanılır; SmtpClient sınıf. Bu makale, birden fazla e-posta adresi nasıl belirtileceğini gösterir. E-posta adresleri şunu kullanarak belirtilebilir: MailMessage sınıf. Bunlar:

  • To - Alıcı adresleri ‘To’ alanında belirtilebilir. ‘To’ alanı alıcıları mesajın ana izleyicisidir. Birden fazla alıcı adresi olabilir.
  • Cc - CC, "carbon copy" (karbon kopya) ya da "courtesy copy" (nazik kopya) anlamına gelir ve e-postayı görmesi gereken ancak mutlaka bir işlem yapması beklenmeyen alıcıları eklemenizi sağlar. Örneğin yöneticiler ya da ekibinizin bir konuşmadan haberdar olması gereken üyeler. Aspose.Email ile CC adreslerini kodunuzda belirtebilirsiniz. Böylece otomatik e-postalar ya da belirli bir adrese gönderilen tüm e-postalar ilgili personele kopyalanabilir.
  • Bcc - Bcc, gizli karbon kopya, alıcıyı diğer alıcılardan gizli olarak bir e-posta göndermenizi sağlar. CC, ana alıcıların gördüğü e-posta bilgilerinde yer alırken, Bcc görünmez. Bu, gizli bildirim için kullanılır. 

Bir e-posta mesajında birden fazla e-posta adresi belirtmek için şu adımları izleyin:

  1. Şunun bir örneğini oluştur MailMessage sınıf.
  2. From ve birden çok To, Cc ve Bcc adresini şunu kullanarak belirt: MailMessage örnek.
  3. Şunun bir örneğini oluştur SmtpClient sınıfı ve e-postayı Send yöntemiyle gönderin.

Aşağıdaki kod örneği, birden fazla To, CC ve BCC adresinin nasıl belirtilebileceğini gösterir.

Gönderici ve Alıcı Görünen Adlarını Ayarlama

Aşağıdaki program örnekleri, bir e-posta mesajındaki e-posta adreslerini dostane isimlere nasıl değiştireceğinizi gösterir. Dostane isim, e-posta adresinden daha insan dostu bir isimdir; örneğin js346@domain.com yerine John Smith. Bir e-posta gönderirken, bir e-posta adresine bir dostane isim ilişkilendirebiliriz. MailMessage sınıf yapıcısı.

Bir e-posta mesajındaki e-posta adreslerini dostane isimlere değiştirmek için şu adımları izleyin:

  • Şunun bir örneğini oluştur MailMessage sınıf ve To ve From alanlarında e-posta adreslerini dostane adlarla birlikte belirt.
  • Cc ve Bcc e-posta adreslerini dostane adlarla birlikte şu yöntemi çağırarak belirt: MailMessage sınıf yapıcı ise MailMessage örnek.
  • Şunun bir örneğini oluştur SmtpClient sınıfı ve e-postayı şu ile gönderin: Gönder metod.

Aşağıdaki kod parçacığı, e-posta adresleri için İsimlerin nasıl görüntüleneceğini gösterir.

Bir E-postanın Konusunu Ayarlama

Bu MailMessage sınıf, mesaj içeriğinin öz özetini şu şekilde belirtmenizi sağlar: konu özellik. Aşağıdaki kod örneği, bir e-posta oluşturup konusunu nasıl ayarlayacağınızı gösterir.

from aspose.email import MailMessage

# Create a new email message
message = MailMessage()

# Set the subject of the email
message.subject = "Meeting Reminder: Project Update"

# Set other email properties (optional)
message.from_address = "sender@example.com"
message.to.append("recipient@example.com")
message.body = "This is a reminder for the upcoming project update meeting."

# Print the email details
print(f"Subject: {message.subject}")
print(f"From: {message.from_address}")
print(f"To: {', '.join(message.to)}")
print(f"Body: {message.body}")

E-posta Gövdesi Ayarlama

Mesajın konusu gibi, e-posta gövdesi de aynı yöntemle belirtilebilir MailMessage sınıf. Bir e-postanın birden çok gövdesi olabilir. Sınıfta iki tür posta gövdesi bulunur:

  • HTML gövdesi
  • Metin gövdesi

Bunun yanı sıra HtmlBody ve TextBody, Aspose.Email’in posta gövdesiyle ilgili iki başka yalnızca‑okunur özelliği daha vardır:

  • IsBodyText: gövdenin metin olup olmadığını kullanıcıya bildirir.
  • IsBodyHtml: gövdenin HTML mi yoksa düz metin mi olduğunu kullanıcıya bildirir.

Bu makale, düz metin ya da HTML gövde metni nasıl tanımlanacağını, alternatif metnin nasıl ayarlanacağını ve e-posta gövdesinin nasıl kodlanacağını gösterir.

HTML Gövdesi Ayarlama

Html gövde, bir mesaj gövdesinin HTML içeriğini belirtmek için kullanılır. Html gövde etiketleri arasında olmalıdır. Aşağıdaki kod parçacığı, HTML gövdesinin nasıl ayarlanacağını gösterir.

Alternatif Metin Ayarlama

Kullan AlternateView sınıf, bir e-posta mesajının farklı biçimlerde kopyalarını belirtmek için kullanılır. Örneğin, bir mesajı HTML olarak gönderiyorsanız, alıcıların bazıları HTML içeriği gösteremeyen e-posta okuyucularını kullansın diye düz metin versiyonunu da sağlamak isteyebilirsiniz. Bu sınıfın iki özelliği vardır, linked_resources ve base_uri, ki bu da e-posta içeriğindeki URL’leri çözmek için kullanılır.

  • LinkedResources, LinkedResources nesnelerinin bir koleksiyonudur. Render edildiğinde, e-postanın içeriğindeki URL’ler önce LinkedResources koleksiyonundaki her LinkedResources nesnesinin Content Linkindeki URLlerle eşleştirilir ve çözümlenir.
  • BaseUri, mail okuyucu tarafından gövde içindeki göreli URL’leri ve ayrıca LinkedResources koleksiyonundaki göreli Content Link URL’lerini çözmek için kullanılır.

Aşağıdaki kod parçacığı alternatif metnin nasıl ayarlanacağını gösterir.

MailMessage Özellikleri

Bu MailMessage class, bir e-posta mesajının içeriğini temsil eder. Örnekleri MailMessage class, bir e-posta mesajı oluşturmak ve bu mesajı bir SMTP sunucusuna teslim için kullanarak SmtpClient class. Bu makale, nasıl kullanılacağını gösterir MailMessage class e-posta özelliklerini kontrol etmek için yardımcı özellikleri:

  • Tarih ve saat - Şu aracılığıyla MailMessage class Date özelliği, bir e-postanın tarih ve zamanını alır veya ayarlar.
  • Mesaj önceliği -  MailPriority sınıf, bir e-posta mesajı gönderirken öncelik seviyelerini belirtir. Düşük, normal veya yüksek olabilir. Öncelik, iletim hızı ve teslimatı etkiler.
  • Mesaj duyarlılığı -  MailSensitivity sınıf beş duyarlılık seviyesini belirtir.
  • Teslim bildirimi - Teslim bildirimleri, göndericilere gönderilen e-postanın alıcının gelen kutusuna teslim edildiğini bildirir.

Varsayılan olarak, tarih, mesajın gönderildiği gerçek tarih ve saat, mesajın gönderildiği zaman olarak Microsoft Outlook tarafından görüntülenir. Ancak, gerçek e-posta teslim zamanı, SMTP sunucusu tarafından posta başlığında eklenir. Örneğin, aşağıda yaygın bir posta başlığı gösterilmiştir; burada Date, Date alanını ayarlar.

import aspose.email as ae
from aspose.email import MailMessage

# Create a new MailMessage instance
message = MailMessage()

# Add SMTP headers to the message
message.headers.add("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")
message.headers.add("Return-Path", "<xyz@oikoscucine.it>")
message.headers.add("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")

# Set email details
message.from_address = "XYZ <xyz@oikoscucine.it>"
message.to.append("abc@aspose.com")
message.subject = "For ABC"
message.date = "Thu, 22 Feb 2007 20:58:51 +0300"
message.message_id = "<01c756c4$41b554d0$6c822ecf@dishonestyinsufferably>"
message.headers.add("MIME-Version", "1.0")
message.headers.add("Content-Type", "multipart/alternative; boundary=\"----=_NextPart_000_0006_01C7569A.58DF4CD0\"")
message.headers.add("X-Mailer", "Microsoft Office Outlook, Build 11.0.5510")
message.headers.add("X-MimeOLE", "Produced By Microsoft MimeOLE V6.00.2800.1106")
message.headers.add("Thread-Index", "Aca6Q:=ES0M(9-=(<.<1.<Q9@QE6CD==")
message.headers.add("X-Read", "1")

# Save the message as an EML file
message.save("output.eml", ae.EmlSaveOptions())

Aşağıdaki kod parçacığı, yukarıda tartışılan her bir özelliğin nasıl kullanılabileceğini gösterir.

import aspose.email as ae
from aspose.email import MailMessage, MailPriority, MailSensitivity
from datetime import datetime

# Create a new MailMessage instance
message = MailMessage("sender@gmail.com", "receiver@gmail.com", "Some subject", "Some body text")

# Set additional properties
message.date = datetime.now()
message.priority = MailPriority.HIGH
message.sensitivity = MailSensitivity.NORMAL
message.headers.add("X-Mailer", "Aspose.Email")

# Save the message as an EML file
message.save("output.eml", ae.EmlSaveOptions())

Okundu Teyidi İsteme

Aşağıdaki program örnekleri, nasıl okundu bilgisi talep edebileceğinizi gösterir.  MailMessage sınıf DeliveryNotificationOptions Sayım özelliği, bir e-posta için teslimat bildirimi seçeneklerini tanımlar. Bir e-posta gönderdikten sonra okundu bilgisi talep etmek için şu adımları izleyin:

  1. Şunun bir örneğini oluştur MailMessage sınıf.
  2. Göndericiyi, alıcıyı ve HTML gövdeyi şunun içinde belirt: MailMessage örnek.
  3. Şunu belirtin: DeliveryNotificationOptions diğer MailMessage örnekleri.
  4. Şunun bir örneğini oluştur SmtpClient sınıf ve e-postayı Send yöntemiyle gönder.

Okuma makbuzu talepleri her zaman yerine getirilmeyebilir çünkü:

  • Bir mail istemcisi bu işlevi uygulamayabilir.
  • Son kullanıcı bu işlevi devre dışı bırakmış olabilir.
  • Son kullanıcı birini göndermeyi seçmeyebilir.

Aşağıdaki kod parçacığı bir okuma makbuzu istemeyi gösterir.

import aspose.email as ae
from aspose.email import MailMessage, SmtpClient, DeliveryNotificationOptions

# Create an instance of MailMessage class
message = MailMessage()

# Specify From, To, HtmlBody, and DeliveryNotificationOptions
message.from_address = "sender@sender.com"
message.to.append("receiver@receiver.com")
message.html_body = "<html><body>This is the Html body</body></html>"
message.delivery_notification_options = DeliveryNotificationOptions.ON_SUCCESS

message.headers.add("Return-Receipt-To", "sender@sender.com")
message.headers.add("Disposition-Notification-To", "sender@sender.com")

# Create an instance of SmtpClient class
client = SmtpClient()

# Specify your mailing host server, Username, Password, and Port
client.host = "smtp.server.com"
client.username = "Username"
client.password = "Password"
client.port = 25

try:
    # Client.send will send this message
    client.send(message)
    # Display 'Message sent' only if the message is sent successfully
    print("Message sent")
except Exception as ex:
    import traceback
    traceback.print_exc()

E-posta Üstbilgilerini Ayarla

E-posta başlıkları bir Internet standardını temsil eder ve RFC, Internet e-posta mesajlarına dahil edilen başlık alanlarını tanımlar. Bir e-posta başlığı, MailMessage sınıfı kullanılarak belirtilebilir. Yaygın başlık tipleri HeaderType sınıfında tanımlanmıştır. Bu, normal bir enum gibi çalışan mühürlenmiş bir sınıftır.

Genellikle bir e-posta üstbilgisi şu alanları içerir:

  • To: Alıcı adresleri To alanında belirtilebilir. Bu alıcılar mesajın birincil hedef kitlesidir. Birden fazla alıcı adresi olabilir.
  • 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: Blind Carbon Copy (Gizli Karbon Kopya) anlamına gelir; mesajın birden çok alıcıya gönderildiği, ancak alıcıların tam alıcı listesini görmediği bir uygulamadır. Gizli bildirim için kullanılır.
  • ReplyTo: Bu başlık alanı, göndericinin yanıtların nereye gitmesini istediğini belirtmek içindir.
  • Subject: Başlık, konu. Genellikle diğer mesajlara yanıt verirken ya da yorum yaparken konu satırı olarak kullanılır.
  • Date: Bu başlık bir tarih (ve zaman) belirtir. Normalde, mesajın oluşturulduğu ve gönderildiği tarih olur.
  • 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 sahiptir. MS Outlook’un XMailer değeri Microsoft Office Outlook, Build 11.0.5510’dur. Bu değer e-posta alıcısı ya da okuyucu tarafından yoksayı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 üstbilgisini özelleştirmek için şu adımları izleyin:

  • Şunun bir örneğini oluştur MailMessage sınıf.
  • To, From, CC, Bcc, ReplyTo, Subject, Date ve XMailer’ı bir örnek kullanarak belirt: MailMessage.
  • Şunun bir örneğini oluştur MimeHeader sınıfı ve gizli üstbilgiyi belirleyin.
  • Gizli başlığı şuraya ekle: MailMessage örnek.

Aşağıdaki kod parçacığı, e-posta başlıklarını nasıl ayarlayacağınızı gösterir.

import aspose.email as ae
from aspose.email import MailMessage
from datetime import datetime

# Create an instance of MailMessage class
message = MailMessage()

# Specify email details
message.reply_to_list.append("reply@reply.com")
message.from_address = "sender@sender.com"
message.to.append("receiver1@receiver.com")
message.cc.append("receiver2@receiver.com")
message.bcc.append("receiver3@receiver.com")
message.subject = "test mail"
message.date = datetime(2006, 3, 6)
message.headers.add("X-Mailer", "Aspose.Email")

Yukarıdaki kod parçacığı, aşağıdaki biçimde bir e-posta başlığı üretir. Bu, oluşturulan "MsgHeaders.msg" dosyasını Microsoft Outlook’ta açıp Özellikleri görüntüleyerek gözlemlenebilir.


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

Üstbilgiyi Belirli Bir Konuma Ekle

Bu Ekle metodu HeadersCollection sınıf, başlığı koleksiyonun sonuna ekler. Ancak, bazen bir başlığı belirli bir konuma eklemek gerekebilir. Bu durumda, Ekle yöntem yardımcı olmayacak. Bunu başarmak için şunu kullanın: Insert metodu HeadersCollection. Eğer koleksiyon aynı isimde başlıklar içeriyorsa, bu başlık aynı isimdeki diğer başlıkların önüne eklenecektir.

Aşağıdaki kod parçacığı, başlığı belirli bir konuma nasıl ekleyeceğinizi gösterir.

# Insert a header into the MailMessage instance
message.headers.insert("Received", "Value")

E-postaya Özel Üstbilgiler Eklemek

Aşağıdaki program örneği, bir e-posta mesajında özel bir başlık nasıl belirtileceğini şunu kullanarak gösterir: MailMessage sınıf.

# Add a header into the MailMessage instance
message.headers.add("secret-header", "mystery")

Yukarıdaki kod parçacığı, aşağıdaki biçimde bir e-posta başlığı üretir:

secret-header: mystery