İleri Tarihli Mail - Dijital Zaman Kapsülü - DeferredDeliveryTime

Katılım
6 Mart 2024
Mesajlar
194
Excel Vers. ve Dili
Excel 2010 TR & Excel 2016 TR
İleri Tarihli Mail - Dijital Zaman Kapsülü - DeferredDeliveryTime

Şuan oluşturulacak olan bir mail içeriğini, ileri bir tarihte kişiye ulaştırılması için oluşturulan mail.

( Microsoft Exchange sunucusu veya Office 365 gibi bulut tabanlı bir posta hizmeti kullanıyorsanız)
Outlook e-postayı SUNUCUYA İLETTİKten sonra BİLGİSAYAR KAPALI OLSA BİLE teslimat GERÇEKLEŞİR.
Teslimat zamanı DeferredDeliveryTime ile belirtilen tarihte sunucu tarafından işlenir.

yani SUNUCU FALİYETTE olduğu sürece mail istenilen tarihte iletilir.

Örnek kullanım: Herhangi bir Sözleşme yapılırken direk sözleşme bitiş tarihi olan güne uyarıcı mail atılması.

C++:
Sub DijitalZamanKapsulu()
    Dim OutApp As Object
    Dim OutMail As Object
    Dim tarih As Date
    Dim saat As String
    Dim teslimZamani As Date
  
    ' Tarih ve saat belirleyin
    tarih = "31.12.2024" ' E-postanın teslim edileceği TARİHi girin (GG.AA.YYYY formatında)
    saat = "23:59" ' E-postanın teslim edileceği SAATi girin (SS:DD formatında)
  
    ' Tarih ve saat birleştirilerek teslimat zamanı oluşturulur
    teslimZamani = DateValue(tarih) + TimeValue(saat)
  
    If IsDate(teslimZamani) = False Then
        MsgBox "Geçerli bir tarih ve saat girmediniz.", vbExclamation, "Hata"
        Exit Sub
    End If
  
    ' Hata kontrolü başlat
    On Error GoTo HataYonetimi
  
    ' Outlook uygulamasını başlat
    Set OutApp = CreateObject("Outlook.Application")
    Set OutMail = OutApp.CreateItem(0) ' 0: OlMailItem
  
    With OutMail
        .To = "ornek@domain.com" ' Alıcı e-posta adresi
        .CC = ""
        .BCC = ""
        .Subject = "İleri Tarihli Mesaj - Dijital Zaman Kapsülü"
        .Body = "Bu e-posta, " & Now & " Tarihinde oluşturuldu ve" & vbCrLf & _
                "ileri bir tarihte teslim edilmek üzere zamanlanmıştır." & vbCrLf & _
                "Teslimat tarihi ve saati: " & teslimZamani
        .DeferredDeliveryTime = teslimZamani ' TESLİMAT ZAMANI
        .Display ' E-postayı görüntüle veya .Send ile doğrudan gönder
    End With

    ' Temizlik
    Set OutMail = Nothing
    Set OutApp = Nothing
    Exit Sub
  
HataYonetimi:
    MsgBox "Bir hata oluştu: " & Err.Description, vbCritical, "Hata"
    ' Temizlik
    Set OutMail = Nothing
    Set OutApp = Nothing
End Sub
ChatGPT Notu:

DeferredDeliveryTime özelliği, Microsoft Outlook ile çalışırken ve çoğunlukla Exchange Server veya benzeri bir gelişmiş e-posta sunucusu kullanıldığında sorunsuz çalışır. Ancak tüm sunucularda çalışıp çalışmayacağı, kullandığınız e-posta protokolü ve sunucu türüne bağlıdır.

1. Microsoft Exchange Sunucusu (veya Office 365):
Çalışır. Outlook e-postayı sunucuya gönderir ve sunucu zamanlamayı yönetir. Bilgisayarınız kapalı olsa bile ayarlanan saatte teslim edilir.
Exchange Server ve Office 365 gibi kurumsal hizmetlerde bu özellik tam desteklidir.

2. IMAP Sunucuları:
Desteklenebilir ama garanti değil.
Outlook, DeferredDeliveryTime özelliğini destekler, ancak e-postayı sunucuya gönderdiğinizde sunucunun bu özelliği destekleyip desteklemediği değişir.
Çoğu IMAP sunucusu, e-postayı zamanlanmış bir teslimat için sıraya almaz; e-posta gönderim sırasında doğrudan alıcıya iletilir.

3. SMTP Sunucuları:
Çalışmayabilir.
SMTP sunucuları genellikle e-posta teslimatını anında yapar. DeferredDeliveryTime özelliği yalnızca e-posta gönderilene kadar yerel olarak (Outbox/Giden Kutusu) tutulur.
Eğer Outlook kapalıysa veya bilgisayar çalışmıyorsa, e-posta gönderilemez.

4. POP3 Sunucuları:
Çalışmaz.
POP3 protokolü, yalnızca e-posta alımı için tasarlanmıştır ve teslimat zamanlaması gibi gelişmiş özellikleri desteklemez.

5. Web Tabanlı Servisler (Gmail, Yahoo, vb.):
Gmail veya Yahoo Mail gibi IMAP/SMTP üzerinden çalışan hizmetlerde, bu özellik sunucunun desteğine bağlıdır:
Gmail: DeferredDeliveryTime, Gmail'in "Schedule Send" özelliği gibi bir eşdeğeri değildir. Gmail'in yerleşik zamanlama özelliğini kullanmazsanız e-posta anında teslim edilir.
Yahoo Mail: Çoğunlukla desteklenmez.

Sonuç:
Tam destek için: Exchange Server veya Office 365 gibi modern e-posta sunucuları kullanmanız gerekir.
IMAP/SMTP: Çoğu durumda desteklenmez veya sınırlıdır.
Bilgisayar kapalı olduğunda: Sunucu, zamanlama özelliğini destekliyorsa e-posta belirtilen saatte teslim edilir. Desteklemiyorsa, Outlook kapalı olduğu sürece teslimat gerçekleşmez.

Öneri:
Kullandığınız sunucunun özelliklerini kontrol edin veya bir test gönderimi yaparak sunucunun DeferredDeliveryTime desteğini doğrulayabilirsiniz.
 
Son düzenleme:
Üst