Outlook otomatik mail gönderme sorunu

burakturk

Altın Üye
Katılım
12 Şubat 2013
Mesajlar
53
Excel Vers. ve Dili
Türkçe Excel 2019
Altın Üyelik Bitiş Tarihi
16-06-2025
Merhaba arkadaşlar.
VBA ile mail gönderiyorum ancak çoğu zaman otomatik olarak göndermiyor mailimi. Mail gönderme ekranını çoğu zaman açık bırakıyor, dökümanı kapatıp açınca bu sefer gönderiyor, ama bazen bu şekilde de göndermiyor. Maili açık bırakıyor ekranda, arkada kalıyor öylece. Bir çok çözüm denedim ama bir türlü sorunumu çözemedim. Sadece mail gönderme modülünü çalıştırdığımda sorun çıkmıyor.. Windows Görev Zamanlayıcısı ile sorunsuz çalıştırabiliyorum dosyalarımı. Yaptığım çalışma adım adım aşağıdadır;

--Windows Görev Zamanlayıcı üzerinden belirlenen saatlerde dosyayı açıyorum--
BuÇalışmaKitabı içinde;
Kod:
Private Sub Workbook_Open()
Uyarı.Show
End Sub
Private Sub Workbook_SheetCalculate(ByVal Sh As Object)
ResetTimer
End Sub

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
ResetTimer
End Sub

Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
ResetTimer
End Sub
--Uyarı formu kodları--

Kod:
Private Sub Refresh()
ActiveWorkbook.RefreshAll
End Sub

Private Sub CommandButton1_Click()
DoEvents
End
End Sub

Private Sub CommandButton2_Click()
Unload Me
Call Excel_ile_Mail_Gönderme
End
End Sub

Private Sub UserForm_Activate()
ActiveWorkbook.RefreshAll

For i = 60 To 1 Step -1
DoEvents
Label1.Caption = i
Application.Wait (Now + TimeValue("0:00:01"))
Next i
Call Excel_ile_Mail_Gönderme
Unload Me

End Sub
--send_mail_xlsx modülü-
Kod:
Sub Excel_ile_Mail_Gönderme()
        ActiveWorkbook.RefreshAll
        Application.DisplayAlerts = False                                                                                          'tüm bildirimleri yok sayar, varsayılan seçeneği uygulayarak devam eder
        ChDir "C:\Users\burak\Desktop\GKFD Arşiv"                                                                                  'dosyanın kayıt edileceği konum
        ActiveWorkbook.SaveAs Filename:="GUNLUK KESILEN FATURALAR DOKUMU - " & Date & ".xlsx", _
        FileFormat:=xlOpenXMLWorkbook, CreateBackup:=False                                                                         'dosyanın kaydedileceği isim ve tarih
    Dim OutApp As Object, Outmail As Object
    Set OutApp = CreateObject("Outlook.Application")
    Set Outmail = OutApp.CreateItem(0)
    Outmail.BodyFormat = 2
         With Outmail
            .To = "xxx"                                                        'gönderilecek mail adresini bu kısma yazın
            .CC = "xxx"                                    'bilgi olarak kimlere gönderileceğini buraya yazın
            .Subject = "Günlük Kesilen Faturalar Dökümü - " & Date                                                                 'konu kısmında ne görünmesini istiyorsanız buraya yazın
            .Attachments.Add "C:\Users\burak\Desktop\GKFD Arşiv\GUNLUK KESILEN FATURALAR DOKUMU - " & Date & ".xlsx"               'gönderilecek raporun konumunu buraya yazın
            .Body = "Noyan Bey & Zafer Bey Merhaba," & Chr(10) & _
            Date & " tarihli günlük kesilen faturalar dökümü ekte bilgilerinize sunulmuştur."                                      'mail içeriğinde ne yazmak istiyorsanız buraya yazın
            .Display
            SendKeys "%G", True
        End With
    Set Outmail = Nothing: Set OutApp = Nothing
End Sub
--Timer modülü--

Kod:
Public CloseDownTime As Variant

Public Sub ResetTimer()
On Error Resume Next
If Not IsEmpty(CloseDownTime) Then Application.OnTime EarliestTime:=CloseDownTime, Procedure:="CloseDownFile", Schedule:=False
CloseDownTime = Now + TimeValue("00:30:00") ' hh:mm:ss
Application.OnTime CloseDownTime, "CloseDownFile"
End Sub

Public Sub CloseDownFile()
On Error Resume Next
Application.Quit
End Sub
Nasıl bir yöntem ile sorunumu çözeceğimi anlayamadım. Mail göndermeden önce bir süre bekletmem mi gerekiyor acaba?

Ayrıca outlook arkaplanda açık ise "run-time error "-2136959355" sunucu çalıştırması başarısız" hatası alıyorum.

bunların çözümü ile alakalı yardımcı olabilecek birileri var mıdır acaba? teşekkür ederim
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,245
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Linkte benzer bir konu işlenmişti.

 

burakturk

Altın Üye
Katılım
12 Şubat 2013
Mesajlar
53
Excel Vers. ve Dili
Türkçe Excel 2019
Altın Üyelik Bitiş Tarihi
16-06-2025
Linkte benzer bir konu işlenmişti.

bu konudaki adımlara baktım, benim yaşadığım soruna herhangi bir çözüm üretmedi.

ben sorunsuz bir şekilde outlook yeni maili oluşturabiliyorum ancak "Send" düğmesine basmadığı için "Taslaklar"da veya "Giden Kutusu" içinde kalıyor mail, çoğu zaman da zaten mail gönderim ekranı karşımda oluyor...
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,245
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Siz gönderme işlemini SENDKEYS (tuş basımı) yöntemi ile yaptırmışsınız. Bu satırı silip direkt .Send yazıp deneyin.
 

burakturk

Altın Üye
Katılım
12 Şubat 2013
Mesajlar
53
Excel Vers. ve Dili
Türkçe Excel 2019
Altın Üyelik Bitiş Tarihi
16-06-2025
Siz gönderme işlemini SENDKEYS (tuş basımı) yöntemi ile yaptırmışsınız. Bu satırı silip direkt .Send yazıp deneyin.
teşekkür ederim, deneyip bilgi vereceğim. ancak belirtmem gerekiyor ki ekranın lock ekranına düşmemesi gerekiyor. bir şekilde makroları pause alıyor sistem, tahminimce güvenlik sebebi ile. bu sıkıntıyı aşmamın kesin bir yöntemi var mıdır?
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,245
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Kilit ekranını kaldırmayı deneyiniz.
 

burakturk

Altın Üye
Katılım
12 Şubat 2013
Mesajlar
53
Excel Vers. ve Dili
Türkçe Excel 2019
Altın Üyelik Bitiş Tarihi
16-06-2025
kilit ekranını kaldırarak yapıyorum ama sürekli terminal ekranım açık olması gerekiyor. konsol modunda açık bırakarak yine işlem yapabiliorum ancak outlook çalışırsa "object server başlatılamadı" hatası alıyorum, kapalı olursa "giden kutusu" içinde takılı kalıyor. bunu çözemedim bir türlü...
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,245
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Siz bu işlemi uzak masaüstünde mi yapıyorsunuz? Eğer öyleyse benim bu konuda bir tecrübem olmadı. Belki bu şekilde kullanan varsa yardımcı olabilir.
 

burakturk

Altın Üye
Katılım
12 Şubat 2013
Mesajlar
53
Excel Vers. ve Dili
Türkçe Excel 2019
Altın Üyelik Bitiş Tarihi
16-06-2025
uzak masaüstünde de yapıyorum, lokalde de. ikisinde de aynı sorunu yaşıyorum gönderirken..
ben çözüm bulana kadar kimse cevap vermezse bulduğum çözümü buradan paylaşırım.
 

burakturk

Altın Üye
Katılım
12 Şubat 2013
Mesajlar
53
Excel Vers. ve Dili
Türkçe Excel 2019
Altın Üyelik Bitiş Tarihi
16-06-2025
Buradaki tespitlerime göre "outlook" uygulaması açık olduğunda öğeyi oluşturamıyor, outlook farklı bir yetkilendirme ile çalışıyor diye bu sorunu yaşadığımı düşünüyorum.
Burada bulunan linkteki makalede anlatılan yöntemleri denedim ancak kodları doğru yerlere yerleştirip yerleştirmediğimden emin olamadım, her satırda bir hata aldım. Büyük ihtimalle çok kritik bir yerde doğru giriş yapmam gerekiyor.
Bu konuda destek olabilir misiniz?
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,245
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Merhaba,

#2 nolu mesajımda paylaştığım bağlantıda konuya verdiğim cevaplar içinde outlook açıksa objeyi setliyor. Eğer outlook açık değilse objeyi açıp öyle setliyor.

Şu bölüm;

On Error Resume Next
Set Uygulama = GetObject(, "Outlook.Application")
On Error GoTo 0

If Uygulama Is Nothing Then Call Shell("Outlook.exe", vbHide)

Set Uygulama = CreateObject("Outlook.Application")
Set Yeni_Mail = Uygulama.CreateItem(0)
 
Üst