Forum
Merhabalar,
Bir sorguyu tabloya basıyorum. Daha sonra o tablodan cursor açıyorum. Cursorden aldığım bilgiler ile sp_sen_dbmail kullanarak mail gönderiyorum.
Recipients için farklı mail copy_recipients farklı mail yazıyorum. Birisine 34 diğerine 37 mail düşüyor.
Logları incelediğimde sent_account_id NULL dönenler failed olmuş görünüyor.
Aynı prosedürü bir daha çalıştırdığımda önceden gitmemiş maillere bu sefer gittiğini görüyorum.
Mail adresi doğruluğu için function kullanıyorum. Mailler doğru. Eğer hatalıysa kendime mail gönderiyorum.
wait for delay da denedim ancak sorun çözülmedi.
1 gönderiyor 2 göndermiyor 4 gönderiyor 1 göndermiyor gibi istikrarsız bir durum var.
aldığım hata;
The mail could not be sent to the recipients because of the mail server failure. (Sending Mail using Account 1 (2021-12-15T17:36:01). Exception Message: Cannot send mails to mail server. (Failure sending mail.).
ekteki örnekte 50 mail gönderdim.
Kodlarımı ekledim.
Yardımlarınızı rica ederim.
Botek Otomasyon
Raporlama ve Analiz Uzmanı
IT'deki arkadaşla kontrol ettik. Gönderilmek istenen mail exchange'e düşmüyor dedi.
Sorun SQL tarafında dedi
Botek Otomasyon
Raporlama ve Analiz Uzmanı
Merhaba,
Öncelikle değişken ve tablo isimlerinde Türkçe karakter kullanmamayı tavsiye ederim. Diğer taraftan elde ettiğiniz değişkenlerden herhangi biri null geliyorsa bu sorunun ondan olma ihtimali yüksek.
sp_send_dbmail den hemen önce aşağıdaki sorguyu çeker misiniz bu değişkenlerden en az birinin null geldiği değer var mı?
select
@CRSR_TARİH,
@CRSR_CLCARD_LOGREF,
@CRSR_FİRMA_KODU,
@CRSR_FİRMA_ADI,
@CRSR_MAIL,
@CRSR_BCC,
@CRSR_firmamiz_YETKİLİ,
@CRSR_firmamiz_POZİSYON,
@CRSR_firmamiz_İLETİŞİM_TELEFONU,
@CRSR_firmamiz_EPOSTA_ADRESİ,
@CRSR_ORT_VADE,
@CRSR_ORT_GECİKME_GÜNÜ,
@CRSR_VADESİ_GEÇEN_ÖDEME_TUTARI,
@CRSR_VADESİ_GELMEMİŞ_BORÇ_BAKİYENİZ,
@CRSR_TOPLAM_BORÇ_BAKİYENİZ
EXEC msdb.dbo.sp_send_dbmail
@profile_name = 'AutoMail',
@recipients = @CRSR_MAIL,
....
@omercolakoglu Merhabalar Ömer Bey,
öncelikle yanıtınız için teşekkür ederim. Sizden bir çok şey öğrendim 🙂
dediğinizi yaptım ancak NULL değer gelmiyor.
ayrıca cursor kullanmadığım başka joblar var her gece 23:55'te 5 adet mail atıyorum tek job 5 proc üzerinden. Ancak orada da aynı problemle karşılaşıyorum. Ve eğer mailde görüntülenen tablolardaki alanlardan herhangi birinde NULL değer olursa mail bomboş gidiyor.
Botek Otomasyon
Raporlama ve Analiz Uzmanı
@adaliadam Merhaba,
Bir de database mail loglara bakar mısın orada ne yazıyor? Özellikle gitmeyenlerden bir tanesine manuel gönderip bakar mısın?
@omercolakoglu Merhaba Ömer Bey,
loglar bu şekilde.
gitmeyenleri tekrar gönderdiğimde gidiyor. Ama toplu çalıştırınca gitmiyor.
ilginç bir durum. Aynı jobı 2 kez çalıştırdım diyelim x firmasına ilkinde gitmiyor ikincisinde gidiyor.
Botek Otomasyon
Raporlama ve Analiz Uzmanı
@omercolakoglu tekrar Merhaba Ömer Bey,
bugün 230 adet ödeme talep maili gönderdim aybaşı olduğu için.
bunu 3 parça halinde gönderebildim. Failed olanları tekrar denedim ve gitti. Sadece 15 tanesi iletilmedi onlarda artık mevcut olmayan e-postalar olduğu için. Outlook'a geri dönen uyarılardan anladım. Failed olanlar exchange e hiç düşmüyor. Gönderilen kutusunda bile görünmüyor. SQL'den exchange'e geçiş olmuyor.
Botek Otomasyon
Raporlama ve Analiz Uzmanı
Detay bakmadım ama bir süredir konunuzu görüyorum burada yaşadığınız sorun connector retry sınırları ile ilgili olabilir belki de. Çok hızlı istek atıyorsanız connector'e ulaşmıyordur. Bu tip şeyleri kontrol edebilirsiniz.
https://docs.microsoft.com/en-us/exchange/mail-flow/queues/message-intervals?view=exchserver-2019
https://msexchangeworld.com/configure-exchange-hub-transport-message-retry-resubmit-and-expiration-intervals/
'balık vermez, nasıl tutulabildiğine yönlendirir'
****************************************************************
Probleminiz Çözüldüğünde Sonucu Burada Paylaşırsanız. Sizde Aynı Problemi Yaşayanlar İçin Yardım Etmiş Olursunuz. Eğer sorununuz çözüldü ise lütfen "çözüldü" olarak işaretlerseniz diğer üyeler için çok büyük kolaylık sağlayacaktır.
*****************************************************************
merhabalar,
Ömer Bey'in yardımlarıyla sorunu çözdük.
Öncelikle iletilmeyen maillerin deneme sayısını arttırdık. Aşağıdaki şekilde ayarladık.
Daha sonra her mail gönderiminden sonraya 3 saniye bekleme ekledik.
bu değişikliklerden sonra 230 adet mailin hepsini göndermiş olduk. Aslında sorun hataya düşen maillerin birden fazla gönderme denemesi yapmaması yüzündenmiş.
Botek Otomasyon
Raporlama ve Analiz Uzmanı
@ibrahimyildiz Merhabalar İbrahim Bey, cevabınızı yeni gördüm. Bizde o yöne baktık en sonunda ve deneme sayısını arttırınca sorunu çözdük.
teşekkür ederim.
Botek Otomasyon
Raporlama ve Analiz Uzmanı
Geçmiş olsun. Emeği geçenlere teşekkürler.
Danışman - ITSTACK Bilgi Sistemleri
****************************************************************
Probleminiz Çözüldüğünde Sonucu Burada Paylaşırsanız.
Sizde Aynı Problemi Yaşayanlar İçin Yardım Etmiş Olursunuz.
Eğer sorununuz çözüldü ise lütfen "çözüldü" olarak işaretlerseniz diğer üyeler için çok büyük kolaylık sağlayacaktır.
*****************************************************************
@adaliadam Sorunun çözüldüğüne sevindim. Güzel bir örnek oldu.