Jak sprawdzic czy POSTFIX dostarczy

Konfiguracja serwerów, usług, itp.
PerPerPer
Posty: 5
Rejestracja: 12 listopada 2014, 23:30

Jak sprawdzic czy POSTFIX dostarczył wiadomość.

Post autor: PerPerPer »

Witam serdecznie,

Korzystam z domyślnej konfiguracji postfixa i dovecota. W jaki sposób mogę sprawdzić status wiadomości. Czy są jakieś narzędzia do zweryfikowania czy mail został dostarczony jeśli posiadam np. Message-ID lub queued?

Z góry dziękuje za odpowiedź ;)
pabliszer
Posty: 61
Rejestracja: 07 października 2009, 12:20

Post autor: pabliszer »

Popatrz w logi postfixa.
Awatar użytkownika
pawkrol
Moderator
Posty: 939
Rejestracja: 03 kwietnia 2011, 10:25

Post autor: pawkrol »

Najprościej to wysłać wiadomość za potwierdzeniem odbioru :)
Thunderbird np: ma możliwość włączenia opcji "Informuj o statusie doręczenia"
PerPerPer
Posty: 5
Rejestracja: 12 listopada 2014, 23:30

Post autor: PerPerPer »

No właśnie, interesuje mnie jak można pobrać taki status doręczenia... jak to wygląda od strony serwera. Piszę właśnie system CRM i jedną z jego funkcji jest mailing. Chce stworzyć możliwość podglądu statusu wiadomości. Interesuje mnie jak sprawdzić czy serwer wysłał wiadomość (to akurat nie jest problem status=sent 250 2.0.0 OK), czy wiadomość została odebrana, i czy została przeczytana.

Jak mogę to osiągnąć?
Awatar użytkownika
pawkrol
Moderator
Posty: 939
Rejestracja: 03 kwietnia 2011, 10:25

Post autor: pawkrol »

Od strony serwera przynajmniej ja nic nie konfigurowałem. Wszystko załatwia klient pocztowy (thunderbird,outlook,roundcube).
Zauważyłem natomiast, iż jeśli klient nie obsługuje takiej funkcjonalności np (webmail onetu) to nawet jeśli wyślesz wiadomość z potwierdzeniem odbioru np z tundebirda to nic Ci to nie da. Czyli wygląda na to że to działa jakby na poziomie aplikacji klienckiej. Oczywiście mogę się mylić.

Roundcube jest na php, więc może coś z niego wyczaisz analizując kod.

Dodane
Chociaż tu masz coś o tym:http://www.sendmail.org/~ca/email/dsn.html
Wychodzi na to, iż klient daje dodatkowe dyspozycje serwerowi odnośnie potwierdzenia.
PerPerPer
Posty: 5
Rejestracja: 12 listopada 2014, 23:30

Post autor: PerPerPer »

Dzięki za naprowadzenie na odpowiedni temat... do wysyłania wiadomości używam PHPmailera
Awatar użytkownika
bagsiur
Beginner
Posty: 132
Rejestracja: 01 czerwca 2008, 22:12
Lokalizacja: Będzin

Post autor: bagsiur »

Witam ponownie (już po odzyskaniu swojego konta),

Udało mi się rozwiązać część mojego problemu ;) Nie wiem na ile jest to dobre rozwiązanie ale w 80% powinno zdawać egzamin... nic innego nie udało mi się wymyślić...

Tak więc fakt czy wysłany przez nas mail został przeczytany możemy sprawdzić w załączając do treści wiadomości obrazek 1px/1px generowany przez skrypt php. Zakładając że obrazek posiada unikalny identyfikator, próbę jego pobrania możemy wykorzystać do zapisania odpowiednich informacji w bazie. Musimy również stworzyć odpowiedni wpis w mod_rewrite. U mnie wygląda to mniej więcej tak:

1. Mod rewrite:

Kod: Zaznacz cały

RewriteEngine On
RewriteRule ^logo-(.+).png$ checking_img.php?id=$1 [L]
2. Obrazek generowany przez php (checking_img.php):

Kod: Zaznacz cały

<?php

    $id_mail = $_GET['id'];

    //ini_set("display_errors", 0);
    error_reporting(0);
        
        // NASZ KOD PHP DO ZAPISANIA DANYCH W BAZIE - U MNIE WYGLĄDA TO TAK
    //require_once('../controller/mailing_db.php');
    //ob_clean();
    //$mailing_db = new Mailing_db_class;

    //$id_mail = intval($_GET['id']);
     //$mailing_db->polaczenie->query("update tasks_bufor set  tasks_bufor.read = 1, tasks_bufor.delivered = 1, tasks_bufor.sent = 1  where read_check = $id_mail");

    header ('Content-Type: image/png');
    $ob = ImageCreate(1,1);
    $white = imagecolorallocate($ob, 255, 255, 255);
    imagefill($ob, 0, 0, $white);
    imagepng($ob);
    imagedestroy($ob);

?>
3. Do wiadomości wstawiamy obrazek:

Kod: Zaznacz cały

<img src="http://domena.pl/logo-[nasz-unikalny-id].png" alt="logo">
To tak w dużym uproszczeniu. Oczywiście nie jest to rozwiązanie idealne bo wystarczy aby user miał wyłączone wyświetlanie obrazków, no ale jednak...

Tak więc teraz pozostaje mi wydobycie komunikatów DSN postfixa. Problemem jest jednak to że sporo serwerow nie zwraca informacji o dostarczeniu maila (lub zwraca z opóźnieniem). Czy ktoś wie jak to może być zaimplementowane w systemach mailingowych np. freshmail?
ODPOWIEDZ