Forum

sp_send_dbmail curs...
 
Bildirimler
Hepsini Temizle

[Çözüldü] sp_send_dbmail cursor kullanımı iletilmeyen mailler

Gökhan Erdoğdu
(@adaliadam)
Üye

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-15T1701). 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ı

Alıntı
Konu başlatıcı Gönderildi : 15/12/2021 18:45
Gökhan Erdoğdu
(@adaliadam)
Üye

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ı

CevapAlıntı
Konu başlatıcı Gönderildi : 17/12/2021 14:50
Ömer ÇOLAKOĞLU
(@omercolakoglu)
Üye

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,

....

 

CevapAlıntı
Gönderildi : 17/12/2021 17:29
Gökhan Erdoğdu
(@adaliadam)
Üye

@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ı

CevapAlıntı
Konu başlatıcı Gönderildi : 17/12/2021 17:58
Ömer ÇOLAKOĞLU
(@omercolakoglu)
Üye

@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?

image
image
CevapAlıntı
Gönderildi : 20/12/2021 09:52
Gökhan Erdoğdu
(@adaliadam)
Üye

@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. 

Screenshot 1

Botek Otomasyon
Raporlama ve Analiz Uzmanı

CevapAlıntı
Konu başlatıcı Gönderildi : 20/12/2021 11:03
Gökhan Erdoğdu
(@adaliadam)
Üye

@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ı

CevapAlıntı
Konu başlatıcı Gönderildi : 20/12/2021 12:04
ibrahim yildiz
(@ibrahimyildiz)
Tecrübeli Üye Forum Yöneticisi

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/

****************************************************************
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.
*****************************************************************

CevapAlıntı
Gönderildi : 20/12/2021 15:17
Gökhan Erdoğdu
(@adaliadam)
Üye

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.

image

Daha sonra her mail gönderiminden sonraya  3 saniye bekleme ekledik.

image

 

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ş.

image

Botek Otomasyon
Raporlama ve Analiz Uzmanı

CevapAlıntı
Konu başlatıcı Gönderildi : 20/12/2021 19:26
Gökhan Erdoğdu
(@adaliadam)
Üye

@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ı

CevapAlıntı
Konu başlatıcı Gönderildi : 20/12/2021 19:28
Hakan Uzuner
(@hakanuzuner)
Kıdemli Üye Yönetici

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.
*****************************************************************

CevapAlıntı
Gönderildi : 21/12/2021 10:21
Ömer ÇOLAKOĞLU
(@omercolakoglu)
Üye

@adaliadam Sorunun çözüldüğüne sevindim. Güzel bir örnek oldu.

CevapAlıntı
Gönderildi : 23/12/2021 11:38
Paylaş: