PHP Çoklu Alıcılara Gelen Posta İşleme

4 Cevap php

Tamam, bu açıklamaya bir veya iki dakika alabilir:

Bir E-posta <> SMS Bridge (Teleflip gibi) oluşturmaya çalışıyorum. Ben çalışmak için bir kaç set parametreleri var:

  • Dreamhost Webhosting
  • PHP 5 (ARMUT olmadan)
  • Postfix
  • MySQL (Eğer Gerekli)

Ben şimdi ne, bir kabuk hesabına gönderilen e-posta ileten bir catch-all e-posta adresi. Sırayla kabuk hesap benim PHP komut iletir.

PHP komut dosyası, onu okur emin düzgün gönderir yapmak için bir çaba içinde birkaç e-posta Başlıkları şeritler, sonra alıcı olarak belirtilen numaraya iletir. Tabii 5551234567@sms.bridge.gvoms.com +1 (555) 123-4567 bir SMS gönderir.

Ben Kime ayrıştırma ve gönderiyor, sadece e-posta adresini kapma olduğum gibi, bu, gerçekten iyi çalışıyor. Ancak, ne ben hesap olmadığını fark etti birden fazla alıcı olduğunu. Örneğin, bir e-posta (satırındaki CC hattı, ya da bunların herhangi bir kombinasyonunu kullanarak) 5551234567 1235554567 ve hem de gönderildi.

Elbette e-posta işleri, ben iki-postaları almak yoludur alınan, her biri ayrı ayrı ayrıştırma sonunda ve 5551234567 iki kez aynı mesajı alıyorum biter.

TO ve CC belirtilen her sayı mesajın bir kopyasını almak, böylece ne, bu durumun üstesinden gelmek için en iyi yoldur.

Ben olası şüphe olsa ek olarak,: BCC aynı şekilde işlemek için bir yolu var mı?

4 Cevap

Wimvds burada en iyi cevabı vardı, ben Dreamhost bir "X-DH-Original-To" Ben sistemi aracılığıyla koşuyorum şekilde başlık içerdiğini yerde öğrendim. Bu kullanarak, bir veritabanı karşı kontrol etmeden e-posta aldıktan sonra tek tek her bir numaraya göndermek mümkün. Bu aynı zamanda Blind Carbon Copy (ben e-posta nasıl çalıştığını anlatmak için yeterli nasıl çalıştığını özelliklerini bilmiyorum) ile çalışması gerekir.

Eğer posta başlıklarını kontrol ederseniz, (e göre RFC2822 - section 3.6.4), bir Message-ID alanını bulmak gerekir. Zaten aynı Message-ID ve bir posta için bir SMS gönderdi varsa Yani test edebilir iki kez aynı sayıda aynı mesajı gönderme önlemek için telefon numarası.

Neden mesaj yoluyla catch-all posta kutusu, döngü kontrol ve sonra bir kez bitmiş bunları silmek için imap gibi bir şey kullanmak değil mi? Bu şekilde ayrı bir hesaba iletmek gerekmez.

Aptal kirli çözüm: posta tüm alıcıları ayrıştırmak, sonra mesaj metninin md5 ile geçici tabloya hepsini koymak sonra, onlara SMS gönderebilirsiniz. Ve bu tabloya karşı tüm gelen postaları kontrol edin.