Otomatik Mail Gönderme

halit3

Uzman
Uzman
Katılım
18 Ocak 2008
Mesajlar
12,801
Excel Vers. ve Dili
2003 excell türkçe
ve
2007 excell türkçe
*************
Merhabalar ,

Alıntıda yer alan kodlar ile otomatik mail gönderimi yapıyorum ancak art arda çok fazla mail gönderdiğim için takibi alıcılar tarafından zor olmaktadır.

Satır aralığı girerek döndü ile gönderim yapıyorum ancak bu gönderimleri 5 dakika ara ile döngüyü bozmadan Nasıl yapabilirim ?

Desteğinizi rica ederim

İyi çalışmalar dilerim
Size farklı bir mail gönderme adresi veriyorum.
http://www.excel.web.tr/f48/mail-gonderme-exe-ve-excelde-t146494.html#post795806

sizin için şunları yapmanızı öneriyorum.

açıklama
1- (veri.xls) dosyasında sayfa1,sayfa2,sayfa3 e
2-Tarih,saat,ve mail sütunlarını doldurun
3-dosyayı kapatın
4-proğramı (mail.exe dosyasını ) açın
5-diğer forma geç menüsünden form6 menüyü seçin
6-var olan gmail adresiniz ve parola ile ilgili kullanıcı adını ve parolayı ilgili text kutusuna yazınız.
7-veri al komut düğmesine tıklayın mail adresleri gelecektir.
8-Mail göndereceğiniz kişilerle ilgili listview nesnesinden sıra numarasına ait seçenek tiklerini işaretleyiniz.
9-eğer dosya gönderecekseniz (Mail gönderilecek dosyayı seç) düğmesinden dosya seçiniz.
10-saat dakika düğmesine tıklayın
11-yeşil renkli açılan liste kutusundan zamanı seçin
12-her seferinde kaç adet mail gönderilecekse mavi renkli nesneye yazın
13-çalıştır düğmesine tıklayın
 

aytekin44

Altın Üye
Katılım
12 Nisan 2014
Mesajlar
72
Excel Vers. ve Dili
Microsoft 365 Enterprise En 64 Bit
Altın Üyelik Bitiş Tarihi
20-10-2025

aytekin44

Altın Üye
Katılım
12 Nisan 2014
Mesajlar
72
Excel Vers. ve Dili
Microsoft 365 Enterprise En 64 Bit
Altın Üyelik Bitiş Tarihi
20-10-2025
Merhaba ,

Desteğiniz için teşekkür ederim ancak exe uzantılı dosya açma yetkimiz kapalı olduğu için macro olarak yapabileceğimiz bir yöntem varsa destek rica ederim

Teşekkürler
İyi çalışmalar
Merhaba ,

Desteğinizi bekliyorum

İyi çalışmalar
 

halit3

Uzman
Uzman
Katılım
18 Ocak 2008
Mesajlar
12,801
Excel Vers. ve Dili
2003 excell türkçe
ve
2007 excell türkçe
Merhaba ,

Desteğiniz için teşekkür ederim ancak exe uzantılı dosya açma yetkimiz kapalı olduğu için macro olarak yapabileceğimiz bir yöntem varsa destek rica ederim

Teşekkürler
İyi çalışmalar
mail göndereceğiniz adresleri B sütununa yazın
Bütün sayfalardaki E2:K3 aralığındaki verileri doldurun bu aralık değişebilir
daha sonra sayfadan veya userformdan mail göndermek için seçenek kutusundan mail adresinizi seçin zaman dilimlerinide seçtiğinizde çalıştır komut düğmesini tıklayın.

not :
data sayfası B sütünundaki mail adreslerine ait A sütunundaki seçenek düğmeleri NESNE SİL ve NESNE EKLE komut düğmeleri ile yapılmakdadır

J ve K sütünundaki port ve serverlerle ilgili

gmail için
Port :465
server :smtp.gmail.com
hotmail için
Port :25
server :smtp.live.com
olmalı

ttnet hotmail serverini ve portunu desteklemiyor.

UYARI !

Kodların çalışması için Timer.ocx ve ietimer.ocx nesnesinin bilgisayarınızda kurulu olması lazım aşağıdaki linki irdeleyiniz.

http://www.excel.web.tr/f167/timer-nesnesinin-kurulumu-t78713.html

görsel video

 

Ekli dosyalar

aytekin44

Altın Üye
Katılım
12 Nisan 2014
Mesajlar
72
Excel Vers. ve Dili
Microsoft 365 Enterprise En 64 Bit
Altın Üyelik Bitiş Tarihi
20-10-2025
mail göndereceğiniz adresleri B sütununa yazın
Bütün sayfalardaki E2:K3 aralığındaki verileri doldurun bu aralık değişebilir
daha sonra sayfadan veya userformdan mail göndermek için seçenek kutusundan mail adresinizi seçin zaman dilimlerinide seçtiğinizde çalıştır komut düğmesini tıklayın.

not :
data sayfası B sütünundaki mail adreslerine ait A sütunundaki seçenek düğmeleri NESNE SİL ve NESNE EKLE komut düğmeleri ile yapılmakdadır

J ve K sütünundaki port ve serverlerle ilgili

gmail için


hotmail için


olmalı

ttnet hotmail serverini ve portunu desteklemiyor.

UYARI !

Kodların çalışması için Timer.ocx ve ietimer.ocx nesnesinin bilgisayarınızda kurulu olması lazım aşağıdaki linki irdeleyiniz.

http://www.excel.web.tr/f167/timer-nesnesinin-kurulumu-t78713.html

görsel video

Merhaba,

Belirttiğiniz dosyaları inceledim kendi macrom için combobox ile gönderim saati şeçmeli mail gönderim yapabiliyorum ancak benim istediğim şu şekilde;


2. satırdan 20 ye kadar mail göndermek için döngü kullanıyorum. Döngü de giden her mail 5 dakika ara ile gitmelidir. Yani macro çalışıp 2 den 20'ye otomatik mail hazırlayacak ve Outlook'un giden kutusunda bekleyecek. Outlook'un zamanlı mail özelliğinde ki gibi zamanı gelen mail outlook giden kutusundan otomatik gitmiş olacak.

Bu konuda destek rica ederim.

Teşekkürler
iyi çalışmalar
 

halit3

Uzman
Uzman
Katılım
18 Ocak 2008
Mesajlar
12,801
Excel Vers. ve Dili
2003 excell türkçe
ve
2007 excell türkçe
Sayfa1 deki userformu açtığınızda saat dakika düğmesine tıklayıp kahverengi açılan liste kutusundan 00:05:00 beş dakikayı seçip mail gönderilecek adresleri de işaretlerseniz, herseferinde kaç adet mail gönderecekseniz turkuaz renkli nesneye yazıp çalıştır düğmesine tıklayınca işlemler otomatik yapıyor.

data sayfasındada benzer bir yöntem mevcuttur.

Örnek dosyamda 13 adet veri var bunların hepsine beş dakika aralığında üçer üçer mail göndermek için

1-saat dakika düğmesine tıklanır
2-kahverengi açılan liste kutusundan 00:05:00
3-turkuaz renkli nesneye 3 yazınız
4-liste kutusundan maillerin hepsi seçilir
5-çalıştır düğmesi tıklanır.

sonuç

ilk beş dakikada listeden seçilen maillerle ilgili ilk üç tanesine mail gönderir sonraki beş dakikada sıradaki ilk üç mail adresine mail gönderir ve bitene kadar devam eder.
 

Ekli dosyalar

Katılım
8 Eylül 2008
Mesajlar
950
Excel Vers. ve Dili
2016 İngilizce
Burada verdiğiniz bilgiler çok işime yardı

herkesin emeğine bilgisine sağlık çok teşekkür ederim.
 
Son düzenleme:

aytekin44

Altın Üye
Katılım
12 Nisan 2014
Mesajlar
72
Excel Vers. ve Dili
Microsoft 365 Enterprise En 64 Bit
Altın Üyelik Bitiş Tarihi
20-10-2025
Merhabalar,

Aşağıdaki kodlar ile otomatik mail gönderiyorum ancak döngü kurarak çok sayıda mail gönderdiğim için bu maillerin okunmama olasılığı olabiliyor.

Örnek; Gönderilen 50 adet mailin döngüde 5 dakika ara ile gitme durumu olabilir mi?
Örnek 2 : Gönderilen 50 adet maili saat 10:00 ile 15:00 arasında rastsal bir saat ve dakikada gitme durumu olabilir mi?

Desteğinizi rica ederim.
İyi Çalışmalar

Kod:
'Sub Zamanı_Geldi()
    'Application.OnTime TimeValue("10:27:00"), "mail_hazirlama"
'End Sub

Sub mail_hazirlama()
basla = InputBox("Mail Gönderilecek Satırı Giriniz")
bitir = InputBox("Mail Gönderilecek İkinci Satırı Giriniz")

For satir = basla To bitir Step 1

Sheets("e_mail").Select
Columns("B:C").Select
Selection.Delete
    
    Sheets("tum_data").Select
    Range("A1:V1").Select
    Selection.Copy
    Sheets("e_mail").Select
    Range("B2").Select
    Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _
        False, Transpose:=True
    Sheets("tum_data").Select
    Range(Cells(satir, 1), Cells(satir, 22)).Select
    Selection.Copy
    Sheets("e_mail").Select
    Range("C2").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=True
    Application.CutCopyMode = False
    
    Rows("2:3").Select
    Selection.Delete Shift:=xlUp
    Rows("17").Select
    Selection.Delete Shift:=xlUp
    Rows("18:20").Select
    Selection.Delete Shift:=xlUp
    Range("C3:C4").Select
    Selection.NumberFormat = "d/m/yyyy"
    Columns("B:B").ColumnWidth = 20
    Columns("B:B").Select
        With Selection
        .HorizontalAlignment = xlLeft
        End With
    Columns("C:C").ColumnWidth = 94
    Columns("C:C").Select
        With Selection
        .HorizontalAlignment = xlLeft
        End With
    Range("C13").Select
        With Selection
        .WrapText = True
    End With
        Rows("13:13").RowHeight = 124.5
    
    'Sheets("E_Mail").Select
    'Sheets("E_Mail").Copy
    Range("B2:C17").Select
    Selection.Copy
    
    'Application.Dialogs(xlDialogSendMail).Show

    Dim rng As Range
    Dim OutApp As Object
    Dim OutMail As Object
    Dim SendAt As String

    Set rng = Nothing
    On Error Resume Next
    'Only the visible cells in the selection
    Set rng = Selection.SpecialCells(xlCellTypeVisible)
    'You can also use a fixed range if you want
    Set rng = Sheets("E_Mail").Range("B1:D").SpecialCells(xlCellTypeVisible)
    On Error GoTo 0
    
    Application.ScreenUpdating = False

    If rng Is Nothing Then
        MsgBox "Mail Göndermek İstediğiniz Excel Tabloyu Şeçiniz" & _
               vbNewLine & "Doğu Alanı Şeçiniz.!)", vbOKOnly
        Exit Sub
    End If
    
    Application.ScreenUpdating = False

    With Application
        .EnableEvents = False
        .ScreenUpdating = False
    End With

    Set OutApp = CreateObject("Outlook.Application")
    Set OutMail = OutApp.CreateItem(0)
    Dim d As Date
    Dim Msg As String
    Dim start_date As Integer
    Msg = "Mail gönderilecek tarih ve saati giriniz.(01.02.2016 10:45)"
    SendAt = "09/04/2016 07:55"    'Tarih ve saat formatı 'InputBox(Msg)
    On Error Resume Next
    
    
    With OutMail
         .To = "to mail adresi;"
         .CC = "CC mail adresi"
        '.BCC = ""
        .Subject = "Feedback " & " // " & Range("C12").Value & " //" & Range("C11").Value & " // " & Range("C10").Value
                    .Display
                    .HTMLBody = "<br>" & "Merhaba," & "<br>" & _
                    RangetoHTML(rng) & "<br><br>" & _
                    "Ps: Aksiyon açıklama alanının doldurulup tarafımıza paylaşılmasını rica ederiz" & "<br><br>" & _
                    "Bilgilerinize." & "<br>" & _
                    "İyi Çalışmalar." & "<br>" & _
                    .HTMLBody
        '.Attachments.Add ActiveWorkbook.FullName    '(Feedback dosyasını maile ekler)
        '.Attachments.Add ("C:\Documents and Settings\AytekinG\Desktop\test.txt")  ' (Dosya yolunu yazdığınız herhangi bir dosyayı maile ekler)
        .DeferredDeliveryTime = SendAt 'defertime
        '.Send   'or use .Display
    End With
    On Error GoTo 0
    
    Application.ScreenUpdating = False

    With Application
        .EnableEvents = False
        .ScreenUpdating = False
    End With

    Set OutMail = Nothing
    Set OutApp = Nothing
    Next satir
   'Application.OnTime TimeValue("18:50:00"), "Send_Range"
    MsgBox "İşleminiz Tamamlandı."
End Sub
 

aytekin44

Altın Üye
Katılım
12 Nisan 2014
Mesajlar
72
Excel Vers. ve Dili
Microsoft 365 Enterprise En 64 Bit
Altın Üyelik Bitiş Tarihi
20-10-2025
İki inputbox oluşturun.

Satir1 ve Satir2 adında olabilir.

Daha sonra bu değerleri döngüye alırsanız satır satır mail atabilirsiniz.
Hocam Merhaba,

28 numaralı mesajım için desteğinizi rica ederim.

iyi çalışmalar
 

aytekin44

Altın Üye
Katılım
12 Nisan 2014
Mesajlar
72
Excel Vers. ve Dili
Microsoft 365 Enterprise En 64 Bit
Altın Üyelik Bitiş Tarihi
20-10-2025
Destek beklemekteyim. Sendat komutu için döngüde rastsal saat oluşturamadım.

Mesaj: 28
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,333
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Kodunuzu aşağıdaki yapıya göre düzenlerseniz 5 dakikada bir döngüdeki satır aralığı kadar mail gönderir.

Kod:
Sub TEST()
    For satir = basla To bitir Step 1
        'Mail kodlarınız...
        'Mail kodlarınız...
        Application.Wait Now + TimeValue("00:05:00")
    Next
End Sub
 

aytekin44

Altın Üye
Katılım
12 Nisan 2014
Mesajlar
72
Excel Vers. ve Dili
Microsoft 365 Enterprise En 64 Bit
Altın Üyelik Bitiş Tarihi
20-10-2025
Kodunuzu aşağıdaki yapıya göre düzenlerseniz 5 dakikada bir döngüdeki satır aralığı kadar mail gönderir.

Kod:
Sub TEST()
    For satir = basla To bitir Step 1
        'Mail kodlarınız...
        'Mail kodlarınız...
        Application.Wait Now + TimeValue("00:05:00")
    Next
End Sub
Hocam Merhaba,

Desteğiniz için teşekkür ederim ancak istediğim tam olarak bu değildi. Sanırım yanlış anlattım.

Görselde ki alanda olduğu gibi döngü ile gönderilen her mailin gidiş saatini ayarlamak istiyorum.

Örneğin 5 adet mail göndereceksem maillerin sırayla gidiş saati aşağıdaki gibi olmalı ve excelin açık kalmasına gerek kalmamalıdır.

10:00
10:05
10:10
10:15
10:20

Tarihi otomatik ayarlamalı yani hangi gün bu işlemi yapıyorsam o günü kendisi girmeli

SendAt ve defertime komutları ile denedim ama beceremedim. Örnek dosya ekledim.

SendAt ile kendi belirlediğim tarih ve saatte mail gönderebiliyorum ancak döngüde yer alan her mail için ayrı ayrı manuel girmek zorunda kalıyorum. 50 mail gönderince işkence gibi oluyor.

Desteğinizi rica ederim.
iyi çalışmalar

 

Ekli dosyalar

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,333
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Resimdeki ekrana nereden giriyorsunuz? Ben bulamadım.

Ayrıca excel kapalı iken mail göndermek için Windows'un zamanlanmış görevler seçeneğini kullanabilirsiniz.

Bu işlemde mail gönderme kodlarınızı dosyanın açılış (open) olayına yazıyorsunuz. Dosya ilgili zamanda açılıp mail gönderiliyor. Sizin mail kodlarınız da kullanıcıya satır numarası girmesi için uyarı verdiriyorsunuz. Bu sebeple bir kişinin bilgisayar başında beklemesi gerekiyor.

Kodlarınızı kimseye ihtiyaç duymayacak şekilde düzenlemenizde fayda var.
 

aytekin44

Altın Üye
Katılım
12 Nisan 2014
Mesajlar
72
Excel Vers. ve Dili
Microsoft 365 Enterprise En 64 Bit
Altın Üyelik Bitiş Tarihi
20-10-2025
Resimdeki ekrana nereden giriyorsunuz? Ben bulamadım.

Ayrıca excel kapalı iken mail göndermek için Windows'un zamanlanmış görevler seçeneğini kullanabilirsiniz.

Bu işlemde mail gönderme kodlarınızı dosyanın açılış (open) olayına yazıyorsunuz. Dosya ilgili zamanda açılıp mail gönderiliyor. Sizin mail kodlarınız da kullanıcıya satır numarası girmesi için uyarı verdiriyorsunuz. Bu sebeple bir kişinin bilgisayar başında beklemesi gerekiyor.

Kodlarınızı kimseye ihtiyaç duymayacak şekilde düzenlemenizde fayda var.
Resimdeki ekrana yeni mail açıp options ekranından giriyorum ancak orada ki tarih ve saati sendAt konumu ile kendim macro ile doldurabiliyorum ama her attığım mail aynı tarih ve saate gidiyor, bu SendAt komutuna döngü ile giden her maili sendAt ' ta yazan saati baz alıp üzerine 5 dakika ekleme yaparak göndermesini sağlamayı beceremiyorum

PC de yoğun işlemler yapıldığı için Zaman'ı geldi macrosu ile sizin söylediğinizi yapınca donma gibi sorunlar çıkıyor

Aşağıdaki şekilde istediğim saatte mailleri gönderebiliyorum sadece SendAt komutunu her gün veya her istediğimde manuel değiştirmem gerekiyor.

Kod:
    Set OutApp = CreateObject("Outlook.Application")
    Set OutMail = OutApp.CreateItem(0)
    Dim d As Date
    Dim Msg As String
    Dim start_date As Integer
    Dim deferdate As Date
Dim defertime
Dim deferDT

deferdate = DateAdd("d", -20, Cells(ActiveCell.Row, 14))
defertime = DateAdd("d", -20, Cells(ActiveCell.Row, 14)) '#10:00:00 AM#
deferDT = DateValue(deferdate) + TimeValue(defertime)

Debug.Print deferdate, defertime, deferDT
    'Msg = "Mail gönderilecek tarih ve saati giriniz.(01.02.2016 10:45)"
    [COLOR="Red"]SendAt = "26/04/2016 17:55"[/COLOR]  'Tarih ve saat formatı 'InputBox(Msg)
    On Error Resume Next
    
    
    With OutMail
         .To = "mail adresi"
         '.CC = ""
        '.BCC = ""
        .Subject = "Feedback " & " // " & Range("C12").Value & " //" & Range("C11").Value & " // " & Range("C10").Value
                    .Display
                    .HTMLBody = "<br>" & "Merhaba," & "<br>" & _
                    RangetoHTML(rng) & "<br><br>" & _
                    "Ps: Aksiyon açıklama alanının doldurulup tarafımıza paylaşılmasını rica ederiz" & "<br><br>" & _
                    "Bilgilerinize." & "<br>" & _
                    "İyi Çalışmalar." & "<br>" & _
                    .HTMLBody
        '.Attachments.Add ActiveWorkbook.FullName    '(Feedback dosyasını maile ekler)
        '.Attachments.Add ("C:\Documents and Settings\AytekinG\Desktop\test.txt")  ' (Dosya yolunu yazdığınız herhangi bir dosyayı maile ekler)
        
        '.Send   'or use .Display
    [COLOR="red"].DeferredDeliveryTime = SendAt[/COLOR] 'defertime
    End With
    On Error GoTo 0
    
    Application.ScreenUpdating = False

    With Application
        .EnableEvents = False
        .ScreenUpdating = False
    End With

    Set OutMail = Nothing
    Set OutApp = Nothing
    
    Next satir
    
    MsgBox "İşleminiz Tamamlandı."
End Sub
 
Son düzenleme:

aytekin44

Altın Üye
Katılım
12 Nisan 2014
Mesajlar
72
Excel Vers. ve Dili
Microsoft 365 Enterprise En 64 Bit
Altın Üyelik Bitiş Tarihi
20-10-2025
Selamlar,

Aşağıdaki kod yapısını satıra göre nasıl gönderebilirim? Desteğinizi bekliyorum. (örneğin 2 yazdığımda kodlar 2. satırdaki veriyi baz alıp gönderim sağlasın)


Sub Email_CurrentWorkBook()

basla = InputBox("Başlangıç Satırını Giriniz")
bitir = InputBox("Bitiş Satırını Giriniz")

For a = basla To bitir

Dim Makro As Object
Dim Mail As Object
Set Makro = CreateObject("Outlook.Application")
Set Mail = Makro.CreateItem(0)
On Error Resume Next
With Mail
.To = Range("c2").Value
.CC = Range("d2").Value
.BCC = ""
.Subject = Range("e2").Value
.Body = "örnektir"
.Attachments.Add (Range("f2").Value)
.Send
End With
On Error GoTo 0
Set Mail = Nothing
Set Makro = Nothing

Next a

Set OutApp = CreateObject("Outlook.Application")
Set OutMail = OutApp.CreateItem(0)

End Sub
 
Üst