• DİKKAT

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

Gmail İle Mail Gönderme

Katılım
8 Şubat 2012
Mesajlar
94
Excel Vers. ve Dili
Excel 2003 vba
Sayın Üye;
Aşağıdaki kodlarla Excelden Gmail hesabınızı kullanarak mail atabiliyorsunuz

Kod:
Sub GmailYolla()
Dim adres As String, Subject As String, HTMLBody As String, BCC As String
Dim iMsg As Object, iConf As Object, Flds
Application.DisplayAlerts = False

Set t = Sheets("sayfa1")
kime = t.Range("b1").Value
konu = t.Range("b2").Value
mesaj = t.Range("b3").Value
bilgi = t.Range("b4").Value
gizli = t.Range("b5").Value
dosyaeki = t.Range("b6").Value
sifre = InputBox("Lütfen Şifrenizi Giriniz" & vbLf & "Şayet Email Gönderilise İşlem Sonunda Mesaj Alacaksınız", "Şifre Gir")
If sifre = "" Then
MsgBox "Şifre Girmediğiniz için işlem iptal edildi.   ", vbCritical, "İŞLEM İPTALİ"
Exit Sub
End If
If kime = "" Then
MsgBox "Gönderilecek kişi bulunamadı.   ", vbCritical, "DİKKAT"
Exit Sub
End If
Set iMsg = CreateObject("CDO.Message")
Set iConf = CreateObject("CDO.Configuration")
Set Flds = iConf.Fields
schema = "http://schemas.microsoft.com/cdo/configuration/"
Flds.Item(schema & "sendusing") = 2
Flds.Item(schema & "smtpserver") = "smtp.gmail.com"
Flds.Item(schema & "smtpserverport") = 465
Flds.Item(schema & "smtpauthenticate") = 1
Flds.Item(schema & "sendusername") = "okyanus@gmail.com"
Flds.Item(schema & "sendpassword") = sifre
Flds.Item(schema & "smtpusessl") = 1
Flds.Update
    With iMsg
        .To = kime
        .CC = bilgi
        .BCC = gizli
        .From = "Okyanus<okyanus@gmail.com>"
        .Subject = konu
        .HTMLBody = mesaj
        .AddAttachment dosyaeki
        .Sender = "Okyanus"
        .Organization = "Okyanus"
        .ReplyTo = "okyanus@gmail.com"
    Set .Configuration = iConf
        SendEmailGmail = .send
        syol = vbNullString
        mailadresi = vbNullString
        adres = vbNullString
        Application.DisplayAlerts = True
        MsgBox "E-posta ve dosya gönderildi.   ", vbInformation, "İletim Raporu"
    End With
Set t = Nothing
Set iMsg = Nothing
Set iConf = Nothing
Set Flds = Nothing
End Sub

Şayet İnputbox ta şifreyi yanlış yazarsanız VBA kod penceresinde hata mesajı veriyor.
Bunu önlemek isterseniz kodların başına On error resume next yazarak hata mesajı almıyorsunuz. Lakin bu durumda şifre hatalı olsada en sonunda
MsgBox la E-posta ve dosya gönderildi. diye mesaj alıyorsunuz.
ŞİMDİ
1) Bu durum mail gönderen için tehlike arz ediyor. Gönderdim dediği mail aslında gitmemiş oluyor.
2) On error resume next komutunu yazmasak bu defa her yanlışta bizi VBA ya atıyor.
Makrolu excel dosyalarınızı arkadaşlarınıza gönderdiğinizde bu kişiler bu sorunu nasıl aşabileceklerini bilmiyor?
3) Hem hata mesajı versin şifre yanlıştır diye hemde, bu hata hariç başka hatalarla karşılaşıldığında formül hataya bakmadan ilerlesin ama en sonunda Mail gönderildi demesin.
Açıkçası "Ne şiş yansın ne kebap yansın" durumu ama mümkün mü ? Böyle bir şey bunu da bilmiyorum
Bilmem anlatabildim mi?
Saygılarımla,
Şimdiden teşekkür ederim..
NOT: Kodlar benim değil başka bir yerden alıntı olup, bazı yerleri değiştirilmiştir.
 
Son düzenleme:
on error resume next' i kullanın. Mesajı da şartlı olarak göstersin.

Aşağıdaki gibi:

Kod:
If err.number = 0 then MsgBox "E-posta ve dosya gönderildi.   ", vbInformation, "İletim Raporu"
 
(ÇÖZÜLDÜ)

Sayın Zeki GÜRSOY;
Öncelikle ilgi alakanız için teşekkürlerini sunarım.
Verdiğiniz kodun istediğim gibi işe yaradığını sevinerek belirtmek isterim.

Son haliyle Dosyayı güncelledim. Belki işlerine yarayacak insanlar olabilir.
 

Ekli dosyalar

Merhaba Sayın okyanus123452,
3 numaralı mesajdaki dosya gerçekten çalışıyor mu?
Şimdi öğrendiğime göre gmail engelliyor bu türlü mailleri, hepinize teşekkür ederim
Saygılarımla
 
Son düzenleme:
merhaba, bu konuya farklı bir parantez açabilir miyim !

Set .Configuration = iConf
SendEmailGmail = .send
syol = vbNullString

Kodun bu kısmı mail GMAIL den göndermek için Peki Hotmail, Mail.ru gibi siteler üzerinden gönderme için Gmail yerine ne yazılmalı ?
 
Port server
465 smtp.gmail.com
25 smtp.live.com


Port

465
25

server

smtp.gmail.com
smtp.live.com



Port ve server böyle olmalı ancak ttnet hotmail hesabını desteklemiyor onun için smtp.live.com dan mail gitmiyor ancak bazı intermet dağıtılan şirketlerden bu maailler gidiyor.
 
halit3 üstadım çok teşekkür ediyorum. Acaba Excelden VBA ile hangi sitelerden mail gönderilebiliyor ? bu konuda bilginiz var mı ! Örneğin Gmail ve Yandexten gidiyor. Yahoo vb. de mümkün oluyor mu ? Ben farklı denemeler yaptım ama olmadı :(
 
merhaba herkezin eline sağlık. bu yöntem ile atılan mailler gmailde giden kutusuna gitmiyor. bunun bir yöntemi varmı acaba.
 
(ÇÖZÜLDÜ)

Sayın Zeki GÜRSOY;
Öncelikle ilgi alakanız için teşekkürlerini sunarım.
Verdiğiniz kodun istediğim gibi işe yaradığını sevinerek belirtmek isterim.

Son haliyle Dosyayı güncelledim. Belki işlerine yarayacak insanlar olabilir.
hocam bu dosyayı bana mail atabilirmisiniz... yada örnek kodu.
oornek1@gmail.com
 
Geri
Üst