• DİKKAT

    DOSYA İndirmek/Yüklemek için ÜCRETLİ ALTIN ÜYELİK Gereklidir!
    Altın Üyelik Hakkında Bilgi

otomatik mail gönderme

Katılım
16 Kasım 2009
Mesajlar
42
Excel Vers. ve Dili
office 2007 ingilizce versiyon
merhaba,

ekteki dosyalarda otomatik mail göndermek için bir macro yazılmıştır. mail gönderme dosyasına göndereceğiniz mail adresleri ve maildeki başlığa ve metine ne yazılacağı yazılmaktadır. parçalama dosyasında ise göndermek istediğiniz dosyalar mevcut.
c nize test diye bir klasör açtıktan sonra parçalamadaki evnmailyolla macrosunu çalıştırdığınızda parçalamadaki sheetler ayrı ayrı test klasörüne kopyalayıp outlook atch yapıyor. mail göndermedeki bilgilere göre to, cc ve başlık ve metin kısmını dolduruyor.

benim istediğim atc olan dosyanın pdf olarak atclenmesi

yardımınızı rica ederim.
 

Ekli dosyalar

Hocam ellerinize sağlık çok yararlı bir çalışma. Benim daha farklı bir isteğim var ve aramama rağmen cevabını bulamadığım bir sorum var;
bir klasör içindeki dosyaları (3 veya 5 veya kaç tane ise) o klasördeki tüm dosyaları 1 e-mailin içine (multiple file olarak) ekleyebilecek bir makro arıyroum
Yardımlarınızı rica ederim.
syg.

QUOTE=ugurust77;645208]merhaba,

ekteki dosyalarda otomatik mail göndermek için bir macro yazılmıştır. mail gönderme dosyasına göndereceğiniz mail adresleri ve maildeki başlığa ve metine ne yazılacağı yazılmaktadır. parçalama dosyasında ise göndermek istediğiniz dosyalar mevcut.
c nize test diye bir klasör açtıktan sonra parçalamadaki evnmailyolla macrosunu çalıştırdığınızda parçalamadaki sheetler ayrı ayrı test klasörüne kopyalayıp outlook atch yapıyor. mail göndermedeki bilgilere göre to, cc ve başlık ve metin kısmını dolduruyor.

benim istediğim atc olan dosyanın pdf olarak atclenmesi

yardımınızı rica ederim.[/QUOTE]
 
MERHABALAR,
eski bir konu ama belki yardımcı olan birisi olur ümidi ile yazıyorum.
bu makroya benim de ihtiyacım var.

teşekkürler


Hocam ellerinize sağlık çok yararlı bir çalışma. Benim daha farklı bir isteğim var ve aramama rağmen cevabını bulamadığım bir sorum var;
bir klasör içindeki dosyaları (3 veya 5 veya kaç tane ise) o klasördeki tüm dosyaları 1 e-mailin içine (multiple file olarak) ekleyebilecek bir makro arıyroum
Yardımlarınızı rica ederim.
syg.
 
Merhaba,

Tam olarak işleyiş nasıl olmalı? Açıklarsanız yardımcı olabiliriz.
 
Merhaba,

Tam olarak işleyiş nasıl olmalı? Açıklarsanız yardımcı olabiliriz.

Korhan hocam,
Yolu modulde tanimlasak (c:\deneme)
A sutununa, ataclanacak dosyalarin ismini yazsak
B sutununa da gonderilecek adresleri
Ama ayri ayri değil tek seferde göndermesi lazım.

Hocam olursa süper olur.
Teşekkürler
 
Merhaba,

Aşağıdaki kodu deneyiniz.

A2 hücresinden başlamak üzere dosya isimlerinizi aralarına virgül ekleyerek yazınız...

Örnek; Deneme.xls,Deneme.pdf

B2 hücresinden başlamak üzere mail adreslerini aralarına noktalı virgül ekleyerek yazınız...

Örnek; aaaa@bbbb.com;cccc@dddd.com


Kod:
Option Explicit

Sub MAIL_GONDER()
    Dim Outlook_App As Object
    Dim Outlook_Mail As Object
    Dim S1 As Worksheet, X As Long, Y As Byte
    Dim Yol As String, Dosya As Variant
    
    Set Outlook_App = CreateObject("Outlook.Application")
    Set S1 = Sheets("Sayfa1")
    Yol = "C:\Deneme\"
    ChDir (Yol)
    
    For X = 2 To S1.Cells(S1.Rows.Count, 1).End(3).Row
        Dosya = Split(S1.Cells(X, 1), ",")
        Set Outlook_Mail = Outlook_App.CreateItem(0)
        With Outlook_Mail
            .To = S1.Cells(X, 2)
            .CC = ""
            .Subject = "Raporlar"
            .Body = "Sayın Yetkili," & Chr(10) & Chr(10) & _
                    "Günlük raporlarımız ekte bilgilerinize sunulmuştur."
             For Y = LBound(Dosya) To UBound(Dosya)
                 If Dir(Yol & Trim(Dosya(Y)), vbNormal) <> "" Then
                     .Attachments.Add Yol & Trim(Dosya(Y))
                 End If
             Next
            .BodyFormat = 2
            .Save
            '.Send
            .Display
        End With
    Next
    
    Set S1 = Nothing
    Set Outlook_Mail = Nothing
    Set Outlook_App = Nothing

    MsgBox "İşleminiz tamamlanmıştır.", vbInformation
End Sub
 
Korhan hocam çok hızlısınız maşallah :)
Eve gider gitmez deneyeceğim.
Elinize sağlık
 
Dosya isimlerinin aralarına virgül ekleyerek yazdınız mı? Ayrıca dosya uzantılarını da belirtin. Mesajımda örnekle açıklamıştım.
 
hocam bu oldu teşekkür ederim.
konuyla bağlantısı yok ama hazır sizi bulmuşken ihtiyacım olan başka bir şey daha sorayım.
klasörü kopyalayıp, adını tarihle değiştirebileceğimiz bir örnek varmıdır acaba elinizde?
örn. kopyalama için kaynak yolu ve hedef yolu sabit tanımladıktan sonra, userform üzerine koyacağımız bir label date atasak ve label captioni klasör ismi olarak değiştirse.
 
Aşağıdaki kodu kullanabilirsiniz.

Kod:
Private Sub CommandButton1_Click()
    Yol = "C:\DENEME"
    Hedef = "D:\" & Label1.Caption
    
    Set FSO = CreateObject("scripting.filesystemobject")

    If FSO.FolderExists(Yol) = False Then
        MsgBox Yol & " klasörü bulunamadı!"
        Exit Sub
    End If

    FSO.CopyFolder Source:=Yol, Destination:=Hedef
End Sub

Private Sub UserForm_Initialize()
    Label1.Caption = Date
End Sub
 
Bende Office 2010 var ve konu başındaki dosya bende hata veriyor. Kitap1.xls için kayıt alanı soruyor sonrasında hata veriyor nedeni nedir acaba?

Veya elinizde şöyle bir dosya var mı?

Belli tarihlerde düzenlenecek eğitimler var. Bu eğitimlere katılacak kişilerin isim soyisim ve e-postaları mevcut. Ben eğitim tarihinden 2 gün öncesi başlayan bir e-posta bilgilendirmesi yapmak için excel kullanmak istiyorum. Söz konusu kişilere eğitim tarihinden 2 gün önce ve 1 gün önce otomatik mail yollayan bir dosyanız yada buna yakın var mı?
 
Merhaba,

Konuyla ilgili örnek dosyanızı ekleyiniz.

İşleyiş şu şekilde olabilir;

Dosya açılışında eğitim tarihlerinin olduğu sütun sorgulanır. Kritere uyanlar mail olarak ilgili adreslere gönderilir. Gönderilen satırlara "Mail Gönderildi" ibaresi yazılır. Böylece dosyanızı daha sonra açtığınızda tekrar tekrar mail gönderilmesini engellemiş oluruz.
 
Merhaba,

Konuyla ilgili örnek dosyanızı ekleyiniz.

İşleyiş şu şekilde olabilir;

Dosya açılışında eğitim tarihlerinin olduğu sütun sorgulanır. Kritere uyanlar mail olarak ilgili adreslere gönderilir. Gönderilen satırlara "Mail Gönderildi" ibaresi yazılır. Böylece dosyanızı daha sonra açtığınızda tekrar tekrar mail gönderilmesini engellemiş oluruz.

Merhaba Korhan Bey,

Ekteki dosyadaki verileri tarih bazında süzüp ilgili kişilere mail yollamak istiyorum. Mesela 21 Ocakta eğitimi olanlara ortak bir mailde yollayabilir. Yalnız bunu tarih ve süreli otomatik yapmak istiyorum. Mesela eğitim tarihinden 2 gün önce her sabah saat 08:00 da otomatik mail yollaması mümkün mü?
 

Ekli dosyalar

Bu durumda tarih kontrolü için dosyanızın her zaman açık olması gerekecek. Bu da gereksiz yere sisteminizi yoracaktır.
 
Çalışmanıza boş bir modül ekleyin ve aşağıdaki kodları uygulayın.

Dosyanızı kayıt edip kapatıp açın. Dosyanız sürekli olarak saat kontrolü yapacak. 08:00 olduğunda otomatik olarak ilgili kişilere mail gönderecektir. Dosyanızın sürekli açık olması gerekiyor.

Kod:
Option Explicit

Sub AUTO_OPEN()
    Application.OnTime TimeValue("08:00"), "MAIL_GONDER"
End Sub

Sub MAIL_GONDER()
    Dim Outlook_App As Object
    Dim Outlook_Mail As Object
    Dim S1 As Worksheet, X As Long, Y As Byte
    
    Set Outlook_App = CreateObject("Outlook.Application")
    Set S1 = Sheets("Sheet1")
    
    For X = 2 To S1.Cells(S1.Rows.Count, 1).End(3).Row
        If S1.Cells(X, 1) - Date = 2 Then
            If S1.Cells(X, 6) <> "Evet" Then
                Set Outlook_Mail = Outlook_App.CreateItem(0)
                With Outlook_Mail
                    .To = S1.Cells(X, 2)
                    .CC = S1.Cells(X, 3)
                    .Subject = S1.Cells(X, 4)
                    .Body = S1.Cells(X, 5)
                    .BodyFormat = 2
                    .Save
                    .Send
                    '.Display
                End With
            End If
        End If
    Next
    
    Set S1 = Nothing
    Set Outlook_Mail = Nothing
    Set Outlook_App = Nothing

    Application.OnTime Now + TimeValue("00:00:10"), "AUTO_OPEN"
End Sub
 
Çalışmanıza boş bir modül ekleyin ve aşağıdaki kodları uygulayın.

Dosyanızı kayıt edip kapatıp açın. Dosyanız sürekli olarak saat kontrolü yapacak. 08:00 olduğunda otomatik olarak ilgili kişilere mail gönderecektir. Dosyanızın sürekli açık olması gerekiyor.

Kod:
Option Explicit

Sub AUTO_OPEN()
    Application.OnTime TimeValue("08:00"), "MAIL_GONDER"
End Sub

Sub MAIL_GONDER()
    Dim Outlook_App As Object
    Dim Outlook_Mail As Object
    Dim S1 As Worksheet, X As Long, Y As Byte
    
    Set Outlook_App = CreateObject("Outlook.Application")
    Set S1 = Sheets("Sheet1")
    
    For X = 2 To S1.Cells(S1.Rows.Count, 1).End(3).Row
        If S1.Cells(X, 1) - Date = 2 Then
            If S1.Cells(X, 6) <> "Evet" Then
                Set Outlook_Mail = Outlook_App.CreateItem(0)
                With Outlook_Mail
                    .To = S1.Cells(X, 2)
                    .CC = S1.Cells(X, 3)
                    .Subject = S1.Cells(X, 4)
                    .Body = S1.Cells(X, 5)
                    .BodyFormat = 2
                    .Save
                    .Send
                    '.Display
                End With
            End If
        End If
    Next
    
    Set S1 = Nothing
    Set Outlook_Mail = Nothing
    Set Outlook_App = Nothing

    Application.OnTime Now + TimeValue("00:00:10"), "AUTO_OPEN"
End Sub

Korhan Bey günaydın,

İlginiz için teşekkür ederim ama siz haklısınız dosyanın sürekli açık kalması hem mümkün olmayabilir hemde sistemi oldukça yoracaktır. Vermiş olduğunuz kodları denedim çalışmadı. Benim Outlook ayarlarında yada atladığım başka bir noktamı var çözemedim.

En azından buton yardımı ile ekteki gibi bir mail yollama yapabilirsem oda işimi görecektir.
 

Ekli dosyalar

Ekteki dosyayı inceleyiniz.

Not: Deneme yaparken sizin adresinize de gönderim yaptım. Mailinizi kontrol ederseniz görebilirsiniz.
 

Ekli dosyalar

Geri
Üst