PHP ile işleme Email Bounce?

11 Cevap php

Ben (php için yeni değil), bu gerçekten yeni duyuyorum.

İşte benim senaryo:

Ben 2 e-postalar hesapları var. admin@domain.com ve bounce@domain.com.

Ben admin@domain.com ile tüm kullanıcılara e-posta göndermek istiyorum ama sonra (ki buraya kadar, benim php script halledebilirim) bounce@domain.com "cevap".

E-posta gönderilecektir cant, bu bounce@domain.com gönderilen, hata iletisi 553 (var olmayan e-posta ...) vb olabilir

Benim soru: Nasıl bir işlem komut dosyası aracılığıyla bounce@domain.com için tüm bu sıçrama e-postalar (e-posta göndermiş olabilir) sıçrama hata kodları kontrol etmek için yön veriyor?

Ben "ele script" için hangi programlama dili olmalıdır?

Ne "ele script" gibi görünüyor istiyorsunuz? Bir örnek verebilir misiniz?

YA: (Büyük Soru)

What are the procedures I should follow to handle the bounce email ??

11 Cevap

Sert, yumuşak ...: En iyi senaryo zıplama türünü sınıflandırmak mümkün olacak

ne kullanmaktır BounceStudio. Siz zor değil hiç ... derlemek ve php kütüphaneleri eklemeniz gerekir. Bu ürünün ücretsiz ve ücretli sürümü var

Biz algılamak kez kind of bounce biz e-posta önceden eklenmiş özel başlıklar aramak için PEAR :: MAIL :: MIME kullanmak, Diyelim ki:

X-user-id: XXXXX
X-campaign-id: YYYYYY 
X-recipient-id: SSSSSSSSS

Bu şekilde biz e-posta gönderdi gerçek alıcı biliyorsunuz.

Bu Size yardım umut! bu yüzden bana 500 puan almak için yardımcı olabilir: P

Neden bounce@domain.com oluşturmak ve read those emails için php kullanmak ve hiç ne istiyorsun ki?

Yorumlarınız sonra düzenleyin: benim link Pazar sabahı şovmen nod nasıl açılır ve e-posta kutusunu kullanarak php ve e-postaları okumak için size öğretecek bir php script var chec lütfen. Sen hata iletileri denetlemek için bu kese kullanabilirsiniz.

E-postalar gerçekten (giriş bilgileri vb) bir emailadress bir adrese sıçrama olsun.

Make a php script which runs ever x minutes (for example with a cron job). This php script must do the following. - Retrieve all email from the box (use for example Zend Mail) - Check for the error in the message (e.g. by searching it with regular expressions) - Do what ever is necessary.

Özellikle bilmek istiyorsanız kim kullanıcıya özel sıçrama adreslerini kullanabilirsiniz toparlanmış. (this site, örneğin bak)

Maybe it's a little late for the answer, but you can always try something new. I had the last week a task like this, and used BOUNCE HANDLER Class, by Chris Fortune, which chops up the bounce into associative arrays - http://www.phpclasses.org/browse/file/11665.html

Bu, bu parçalara ayrıştırmak, sonra ondan sekerek almak için bazı mailler ile POP3 bağlandıktan sonra kullanılır ve gerekli işlemleri yapmak için aradı durumu varsa edilecektir.

Şerefe.

Eğer bounce@domain.com, sen mesajları almak ve teslim edilemeyen ileti kontrol etmek için PHP ile yazılmış bir POP3 istemci komut dosyası kullanabilirsiniz için kurulmuş bir POP3 posta kutusu var ise.

Eğer e-posta göndermek ve sıçrama ayrıntıları almak için kendi API kullanarak adanmış bir hizmet ile daha iyi olabilir ancak her zaman http üzerinden http://cloudmailin.com sizin php sunucu üzerinde sekti e-postaları iletmek için gibi bir şey kullanabilirsiniz.

Ben bunun için bir PHP çözüm arıyor oldukça kötü şans vardı, ama ben gerekli yok sadece ne bu ürünle karşılaştım.

Bir yerli app mac / win olarak çalışır ama iş yok.

http://www.maxprog.com/site/software/internet-marketing/email-bounce-handler_sheet_us.php

Ben aynı soruya cevap arıyordu. Sorunun daha fazla parça ve daha fazla seçenek vardır.

Sekti e-posta işleme, ben tamamen PHP, bir PHP destekli site varsa gerekli hiçbir derleme veya ek yazılım kurulumu, bir PHP class bulundu. Kullanımı çok kolaydır.

Eğer cPanel veya InterWorx / SiteWorx kullanıyorsanız, bir PHP komut dosyası, örneğin, bir script ile alınan e-postaları ele adresleri bazı yapılandırabilirsiniz, böylece söz konusu sınıfın yardımı ile kendi işleme yazabilirsiniz. Veya tabii hala sıradan e-posta hesaplarını yaratabilir ve POP3 veya IMAP üzerinden postaları almak ve sonra onları yorumlamak. Ben ilk doğrudan çünkü, IMAP gibi, ek kanalları kullanmak zorunda değilsiniz, daha iyi olduğunu düşünüyorum. Eğer posta sunucusu yapılandırmak edemez, ya da bunu yapmak için nasıl bilmiyorum eğer Tabii ki, o eski sizin için daha hayırlıdır.

İyi şanslar! :)

Php posta komutta http://php.net/mail

Eğer beşinci parametresi kullanmak ve ona "-f" ekleyin.

Yani, parametre olarak "-f mybouncebox@mydomain.com" kullanımı

phpList newsletter manager sekerek yönetmek için kullanır.

Sekerek posta kutusuna doldurmak sonra, bunları POP ve bunları işleyebilir. Ulaştığında ellemeden aksine o, onlarla başa çıkmak için en kolay yoludur.

İşte IMAP kullanarak sekerek işlemek için bir konserve çözümdür.

Ben özel bir bounce@xxxxxx.us benim Posta örneğinin Return-Path başlığı değişti

Beni canlı düşünmek için yeterince kolay tek yöntem POP3 üzerinden adanmış gelen kutusunu kontrol eder ve alınan mesaj dayalı her e-posta işleyebilir, hangi şudur.

$inst=pop3_login('mail.xxxxxx.us','110','bounce@xxxxxx.us','pass');
$stat=pop3_stat($inst);
//print_r($stat);
if($stat['Unread']>0){
    echo "begin process<br><br>";
    $list=pop3_list($inst);
    //print_r($list);
    foreach($list as $row){
        if(strpos($row['from'],'MAILER-DAEMON')!==FALSE){
            $msg=imap_fetchbody($inst,$row['msgno'],'1');
            if(strpos($msg,'550')!==FALSE){
                echo "handle hard bounce".$msg."<br><br>";
                //WHATEVER HERE TO PROCESS BOUNCE
            }   
        }
        else{
            $msg=imap_fetchbody($inst,$row['msgno'],'1');
            echo "not from my server. could be spam, etc.".$msg."<br><br>";
            //PROBABLY NO ACTION IS NEEDED
        }   
        //AFTER PROCESSING
        //imap_delete ( resource $imap_stream , int $msg_number [, int $options = 0 ] )
        //commented out because I havent implemented yet. see IMAP documentation
    }   
}   
else{
    echo "no unread messages";  
}


//imap_close ( resource $imap_stream [, int $flag = 0 ] )
//commented out because I havent implemented yet. see IMAP documentation.
//flag: If set to CL_EXPUNGE, the function will silently expunge the mailbox before closing, removing all messages marked for deletion. You can achieve the same thing by using imap_expunge()




function pop3_login($host,$port,$user,$pass,$folder="INBOX",$ssl=false) 
{ 
    $ssl=($ssl==false)?"/novalidate-cert":""; 
    return (imap_open("{"."$host:$port/pop3$ssl"."}$folder",$user,$pass)); 
} 
function pop3_stat($connection)        
{ 
    $check = imap_mailboxmsginfo($connection); 
    return ((array)$check); 
} 
function pop3_list($connection,$message="") 
{ 
    if ($message) 
    { 
        $range=$message; 
    } else { 
        $MC = imap_check($connection); 
        $range = "1:".$MC->Nmsgs; 
    } 
    $response = imap_fetch_overview($connection,$range); 
    foreach ($response as $msg) $result[$msg->msgno]=(array)$msg; 
        return $result; 
} 
function pop3_retr($connection,$message) 
{ 
    return(imap_fetchheader($connection,$message,FT_PREFETCHTEXT)); 
} 
function pop3_dele($connection,$message) 
{ 
    return(imap_delete($connection,$message)); 
} 

Biz postaların bu tür filtre Procmail kullanıyor. Zaten burada bahsedilen bazı çözümler inceledikten sonra, biz sıçrama mesajları algılamak için basit bir Procmail reçete ile sona erdi. İhtiyacınız doğruluk bağlı olarak, bu durum için geçerli olabilir.

Ayrıntılar için, bu kontrol blog entry.