• DİKKAT

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

Run-time eror '-2147467259

Katılım
18 Nisan 2008
Mesajlar
304
Excel Vers. ve Dili
excel 365
Office 365
outlook üzerinde mail gönderirken alınan hata için çözüm.

Merhaba,

excellde outlook üzerinden mail gönderen bir makrom var,
ancak excell deki mail adresleri bazen hatalı çıkabiliyor.
örneğin: info@excel.web/commm gibi
bu olduğunda makro hata veriyor.

bu hata ile karşılaştığımda manuel olarak dosyaya girerek o mailin bulunduğu satırı silmem gerekiyor.
anca son zamanlarda hatalar çoğaldı ve bunu makroya uyarlamak istiyorum

Makro :

Sub sendEmail()
Dim myOutlook As Outlook.Application
Dim myEmail As Outlook.MailItem
Dim myEmailBody As String
Dim r1 As Variant

Set myOutlook = New Outlook.Application
If myOutlook Is Nothing Then Set myOutlook = New Outlook.Application


r1 = Sheets("html").Range("A1:A2222")

For i = 1 To UBound(r1)
myEmailBody = myEmailBody & r1(i, 1) & vbCrLf
Next

For i = 1 To 5000
If Sheets("mail adresleri").Cells(1, 1) = "" Then Exit For
Set myEmail = myOutlook.CreateItem(olMailItem)
myEmail.Importance = olImportanceNormal
myEmail.Subject = Sheets("mail adresleri").Cells(1, 2)
myEmail.BodyFormat = olFormatHTML
myEmail.HTMLBody = myEmailBody
myEmail.Recipients.Add Sheets("mail adresleri").Cells(1, 1)
myEmail.Send
Sheets("mail adresleri").Rows(1).Delete
ThisWorkbook.Save
Application.Wait (Now + TimeValue("0:01:18"))
Next
End Sub

Hatayı myemail.send kısmında veriyor.

yapmak istediğim, makro önceden bu satırdaki maili incelesin eğer hatalı bir mail ise bu satırı silsin bir alt satıra baksın.
bunu yapabilir miyiz?

iyi çalışmalar
 
Son düzenleme:
Aşağıdaki linkte verdiğim kodları kendi kodlarınızın içine adapte edebilirsiniz.

http://www.excel.web.tr/f48/metin-icinden-mail-adresini-cekmek-t115089.html

Levent Bey,
benim açtığım eski bir konuydu bu, bu makroyu biliyorum ancak bunda biraz sorun çıkıyor. aşağıdaki resimde bazı mail adreslerini almadığını ve bazı hatalı mail adreslerini aldığını görebilirsiniz.

bu durumu outlook daki hata verme sistemi üzerinden çözmek en kesin sonuca ulaştırır diye düşünüyorum.
iyi çalışmalar

attachment.php
 

Ekli dosyalar

  • saa.JPG
    saa.JPG
    48.7 KB · Görüntüleme: 28
Alternatif olarak aşağıdaki linkdeki dosya ile mail doğrulamayı yaptırabilirsiniz.

http://www.excel.web.tr/f125/email-adreslerinin-dooruluk-kontrolu-t104163.html

Halit Bey

Yönlendirdiğiniz linki inceledim, fakat orada da bazı hatalar var, örnek olarak alttaki resime bakabilirsiniz.
Bu sorunu outlook daki hata denetleme mekanizmasındaki gibi çözmek gerek diye düşünüyorum, verdiği hatayı makroyu durdurmadan önce analiz ederek hatalı mail satırını silecek şekilde programlama gerek diye düşünüyorum.
Mail alıcı satırına adres yazılmadan önce yada "send" komutundan önce bir yerlerde bir kod yazmamız gerekebilir.

attachment.php
 

Ekli dosyalar

  • 11.JPG
    11.JPG
    12 KB · Görüntüleme: 25
Halit Bey

Yönlendirdiğiniz linki inceledim, fakat orada da bazı hatalar var, örnek olarak alttaki resime bakabilirsiniz.
Bu sorunu outlook daki hata denetleme mekanizmasındaki gibi çözmek gerek diye düşünüyorum, verdiği hatayı makroyu durdurmadan önce analiz ederek hatalı mail satırını silecek şekilde programlama gerek diye düşünüyorum.
Mail alıcı satırına adres yazılmadan önce yada "send" komutundan önce bir yerlerde bir kod yazmamız gerekebilir.

attachment.php

Ben alternatif çözüm sunmuştum size, mail gönderme işinden anlamıyorum ama kendi kodunuzu çalıştırmadan önce önerdiğim linkdeki gibi mail adresi varmı yokmu kontrollerini yaptırdıktan sonra (3 - SMTP) bunun dışındaki satırlarda kodunuzu atlatmanız gerekecek
 
bende dediğiniz gibi yaparak mail gönderme kodu çalışmadan önce bu kodu çalıştırdım ancak ekledigim resimlere bakarsınız hatalı sonuç verdi
 
bende dediğiniz gibi yaparak mail gönderme kodu çalışmadan önce bu kodu çalıştırdım ancak ekledigim resimlere bakarsınız hatalı sonuç verdi

Neden resim ekliyorsunuzda dosyanızın küçük bir kısmını eklemiyorsunuz resimlerden kodun ne yaptığını anlamak oldukca zor.
 
Neden resim ekliyorsunuzda dosyanızın küçük bir kısmını eklemiyorsunuz resimlerden kodun ne yaptığını anlamak oldukca zor.

Kusura bakmayın ben daha önce dosyayı eklediğimi zannettiğim için resimler ile devam ediyordum.

Şimdi ek'e dosyayı iliştirdim.

Sizin yönlendirdiğiniz mail kontrol makrosunu "doğru yanlış" şekilde cevap verecek şekilde değil de, doğrularla yanlışları ayrı sütunlara ayıracak şekilde ayıracak şekilde düzenleyebilir miyiz?

iyi çalışmalar dilerim.

mail kontrol makrosu;

Option Explicit
Const MODULE_NAME As String = "modMail"
Public Function ValidateEmailAddress(ByVal strEmailAddress As String) As Boolean
On Error GoTo Catch
Dim objRegExp As New RegExp
Dim blnIsValidEmail As Boolean
objRegExp.IgnoreCase = True
objRegExp.Global = True
objRegExp.Pattern = "^([a-zA-Z0-9_\-\.]+)@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,3})$"
blnIsValidEmail = objRegExp.Test(strEmailAddress)
ValidateEmailAddress = blnIsValidEmail
Exit Function
Catch:
ValidateEmailAddress = False
MsgBox "Module: " & MODULE_NAME & " - ValidateEmailAddress function" & vbCrLf & vbCrLf _
& "Error#: " & Err.Number & vbCrLf & vbCrLf & Err.Description
End Function
Sub kontrol()
Dim i As Integer
For i = 1 To [a65536].End(3).Row
Cells(i, 2) = ValidateEmailAddress(Cells(i, 1))
Next
End Sub
 

Ekli dosyalar

Son düzenleme:
Merhaba örnek dosyanızdaki kodu çalıştırın ve gözlemleyin

1- (3 - SMTP ) doğru mail
2- (2 - DNS ) yanlış mail
3- (0 - Bad address ) yanlış mail

B sütunundaki hücrelerine yukarıdaki parantez içindekilerden biri gelecektir 1 numaradaki veri doğru yani (3 - SMTP ) bu simge maail adresini doğru olduğunu gösteriyor.

İlgili web adresi bu doğrulamayı her 10 saniyede bir yapıyor ve 50 den fazlasına izin vermiyor izin vermediği içinde modemi resetlemek gerekiyor.

Bazı mademlerde (ResetModem.exe) dosyası çalışıyor bazılarında çalışmıyor.

Gönderdiğim dosyaları rar dan çıkar ve yan yana dursun daha sonra Mailler dosyasını aç ve aktar düğmesine tıkla bu işlem mail adreslerine göre baya bir zaman almaktadır.

İlgili web adresi

http://centralops.net/co/EmailDossier.aspx
 

Ekli dosyalar

Merhaba örnek dosyanızdaki kodu çalıştırın ve gözlemleyin

1- (3 - SMTP ) doğru mail
2- (2 - DNS ) yanlış mail
3- (0 - Bad address ) yanlış mail

B sütunundaki hücrelerine yukarıdaki parantez içindekilerden biri gelecektir 1 numaradaki veri doğru yani (3 - SMTP ) bu simge maail adresini doğru olduğunu gösteriyor.

İlgili web adresi bu doğrulamayı her 10 saniyede bir yapıyor ve 50 den fazlasına izin vermiyor izin vermediği içinde modemi resetlemek gerekiyor.

Bazı mademlerde (ResetModem.exe) dosyası çalışıyor bazılarında çalışmıyor.

Gönderdiğim dosyaları rar dan çıkar ve yan yana dursun daha sonra Mailler dosyasını aç ve aktar düğmesine tıkla bu işlem mail adreslerine göre baya bir zaman almaktadır.

İlgili web adresi

http://centralops.net/co/EmailDossier.aspx

Halit Bey,
öncelikle ilginiz için teşekkür ederim.

Elimdeki mail adreslerine bakarsam bu şekilde bir onay sürecinin 388 saat alacağı söz konusu. bu yöntem ile çalışmak benim için biraz verimsiz görünüyor. Ancak sistem çok iyi işliyor ve çok başarılı bir çalışma yapmışsınız,
elinize bilginize sağlık.
 
Halit Bey,
öncelikle ilginiz için teşekkür ederim.

Elimdeki mail adreslerine bakarsam bu şekilde bir onay sürecinin 388 saat alacağı söz konusu. bu yöntem ile çalışmak benim için biraz verimsiz görünüyor. Ancak sistem çok iyi işliyor ve çok başarılı bir çalışma yapmışsınız,
elinize bilginize sağlık.

İyi çalışmalar
 
Geri
Üst