PHP ve MySQL'de posta listesi. PHP Gecikmeli posta komut dosyası php posta listesi

Mektupların e-postaya toplu otomatik postalanmasının e-posta pazarlamasını organize etmek için komut dosyasını indirin Lasto Post Woodpecker v5.01

karakteristik:

Komut dosyası, bir MySQL veritabanına ve bir cron zamanlanmış uygulama başlatma hizmetine ihtiyaç duymaz ve bu nedenle ücretsiz sunucularda bile çalışır. Serideki harf sayısı herhangi bir sayıda kısıtlama olabilir. Bağımsız olarak çalışan hizmetlerin sayısında bir sınır yoktur. İstediğiniz sayıda farklı e-posta haber bülteni serisi oluşturma yeteneği ve her biri için kendi dizininizi oluşturmanıza bile gerek yok.
Doğrudan Web arayüzü aracılığıyla, belirli bir posta listesine birkaç saniye içinde yeni bir mektup ekleyebilirsiniz, ancak mektubun önceden hazırlanması gerekir ve bu mesaj, bu hizmetin daha önce almış tüm abonelerine yolculuğuna hemen başlar. bu diziden eksiksiz bir mektup seti.

Grafik eklemek mümkündür.
- Yönetim kolaylığı: Admin paneli ne yaptığını, hangi dosya ile yaptığını en detaylı şekilde yazar.
- Hizmetin "makul" davranışı: betiğin kendisi sunucudaki tüm gerekli dosyaları oluşturur ve ayrıca gerekirse değiştirerek ve silerek bunları yönetir. İstatistikleri ve gerçekleştirilen eylemlerin günlüğünü tutar.
- Gelişmiş yönetici paneli: sadece birkaç tıklamayla yeni bir otomatik posta hizmeti oluşturabilirsiniz.
- Ev sahipliğine bireysel yaklaşım: ev sahibi tarafından öne sürülen koşullara bağlı olarak, e-posta trafiğinin yoğunluğunu kontrol etmek mümkündür (bir kerede çok sayıda mektup veya küçük porsiyonlar halinde, ancak gün boyunca gönderin). Bazı barındırma şirketleri dakikada birden fazla e-posta göndermenize izin vermez (spam koruması), ancak bu durumda bile komut dosyamız amacına hizmet edecektir.
- Kaynağın web yöneticisi tarafından PHP bilgisi için herhangi bir gereklilik yoktur. PHP'yi bilmek yararlı olsa da ...

İkinci sürümde yer alan iyileştirmeler:

Kron'u en basit şekilde bağlamak.
- Belirli bir hizmetin tüm abonelerine veya aynı anda birkaç hizmete mesaj gönderme.
- Daha kullanışlı yönetici paneli (tüm raporların çok sayfalı çıktısı).
- E-posta listelerini içe ve dışa aktarma. Kullanıcı adlarıyla (örneğin, bir akıllı yanıtlayıcıdan alınan) e-posta veritabanlarını içe aktarabilme.

Üçüncü sürümde yer alan iyileştirmeler:

Herhangi bir formatta sınırsız sayıda ek uygulandı.
- Geliştirilmiş e-posta listesi içe aktarma mekanizması.
- Yerleşik veritabanı kurtarma hizmeti.
- Otomatik veritabanı yedeklemesi (yedekleme) için özel hizmet eklendi.
- Aboneliğin dinamikleri hakkında istatistik elde etmek için yerleşik modül.
- Artık belirli bir e-posta adresini tüm veya bazı hizmetlerden hariç tutabilirsiniz. Uygunsuz davranış sergileyen kullanıcıların mail listesine abone olması gerekmektedir.

Dördüncü sürümde yer alan iyileştirmeler:

Kullanıcı aboneliğini onaylamalıdır - e-postasına gelen özel bir bağlantıya tıklayın. Böyle bir onay izlenmezse, komut dosyası daha sonra aboneliği birkaç kez daha onaylamanız gerektiğini size hatırlatacaktır.
- Web yöneticisi, abonelik için belirli posta alanlarını engelleyebilir. Örneğin, Rambler'ın posta sunucusu, birçok otomatik postacıdan gelen mektupları spam olarak kabul eder.
- Seri harflerle çalışma algoritması değiştirildi.
- Komut dosyasının geçici olarak devre dışı bırakılması, açıldıktan sonra, bu tarihe kadar gönderilmiş olması gereken bir mektup çığı oluşturmayacaktır - harfler, belirtilen aralıkta sakin ve asil bir şekilde ayrılacaktır.
- Aynı serinin her iki bitişik harfi arasındaki aralık isteğe göre ayarlanabilir.
- Kullanıcılar yalnızca geçici veritabanıyla çalışır ve ana veritabanına erişimleri yoktur.
- Veritabanlarının senkronizasyonu, başka hiç kimse tarafından değil, bir komut dosyası tarafından gerçekleştirilir.
- Haber bülteni hizmeti tamamen yeniden tasarlandı - artık bağımsız bir görev.
- Bültenlerle ilgili istatistikler yapıldı - web yöneticisi artık bültenin hangi aşamada olduğunu, toplam mektup sayısını, kaç tanesinin gönderildiğini, kaç tanesinin kaldığını görüyor.
- Programa göre postalama imkanı getirildi (belirli bir tarihe ulaşıldığında bir haber bülteni başlatmak).
- Gönderen, işte karşılaşılan zorluklar hakkında bir webmaster bildirim sistemi ile donatılmıştır. Sunucuda bir arıza meydana gelirse, web yöneticisi bunu e-postadan hemen öğrenecektir.
- Artık e-posta arayüzünden e-posta listesinden çıkabilir ve aboneliğinizi onaylayabilirsiniz.
- Cron aracılığıyla bir yedeği etkinleştirirken, hizmetlerin durumu hakkında günlük istatistiklere sahip olacaksınız. Komut dosyası bir rapor oluşturacak ve doğrudan e-postanıza gönderecektir.
- Abonelik dinamikleri bölümü grafik raporlarla desteklenmiştir.

Beşinci (gelişmekte olan) sürümde yer alan iyileştirmeler:

Bilgisayar korsanları tarafından oturum açma ve parola seçmek için kullanılan otomatik programlara karşı koruma getirildi.
- Yetkilendirme sürecine, yönetici paneline hangi erişimin imkansız olduğunu bilmeden rastgele tek seferlik bir kod oluşturup yöneticinin e-postasına gönderme adımı eklendi.
- Yönetici paneli içindeki sayfalar arasında gezinirken, oturum açma veya parola karmaları artık kullanılmamaktadır.
- Tarayıcı önbelleğinin içini boşaltmak (veya trafiği engellemek) güvenlik açısından sizi tehdit etmez.
- Veritabanı yapısı artık varsayılan olarak önceden belirlenmemiştir. Doğrudan komut dosyası koduna yönlendirilen özel bir anahtarla şifreleme yöntemini kendiniz değiştirirsiniz. Web arayüzünde, anahtar görünmez ve görüntülenemez veya değiştirilemez.



Sitemizde barındırılan yazılımı ücretsiz olarak indirebilirsiniz, gereksinimlerinizi karşıladığından ve çalışır durumda olduğundan sorumlu değiliz ve garanti etmiyoruz, çoğu durumda ayarlamalar ve düzeltmeler gerektirecektir. Çalışmasındaki hataların düzeltilmesi, bir hosting üzerine kurulması, kurulumu görevlerimiz arasında olmayıp, programcımızın hizmetleri için ayrı bir ödeme karşılığında gerçekleştirilmektedir.

İnternette birçok ücretsiz hizmet var. Abonelere posta mektupları için hizmetler dahil. Bazıları çok iyi. Ancak ücretsiz oldukları için, reklamların oradaki mektuplarda göründüğü anlamına gelir. Evet ve bir servis temsilcisinin logosuna sahip birçok abonelik formu pek çoğuna uymuyor.

Öyleyse neden postalarınız için basit bir motor yazıp kendi başınıza mektuplar göndermiyorsunuz?

Bakalım bunun için neye ihtiyacımız var. Ziyaretçilerin bülteninize abone olabilmesi için, bir e-posta adresi girmek için bir forma ihtiyacınız vardır. Adresi girdikten sonra hatırlanmalı. Adresleri bir dosyaya kaydedelim maillist.txt satır başına bir adres. Adres kaydedildikten sonra, uygun mesajı görüntüleyelim ve başka bir adrese abone olmak veya mevcut bir adresi silmek için bir form görüntüleyelim. Aslında neredeyse hepsi bu. Geriye yalnızca mektup gönderme yeteneği eklemek kalır. Güvenlik için, mektup gönderme yeteneğine bir şifre koyalım - şifre girmek için bir form gereklidir. Ardından, gönderenin adresini ve konusunu ve ayrıca metnin kendisini doldurmak için formlara ihtiyacınız olacak. Ve son olarak, mektupları gönderecek olan komut dosyasının kendisi. Ve şimdi her şey yolunda.

Bir e-posta adresi girme formu, yalnızca bir adres girmek için bir pencere ve onaylamak için bir düğmeden oluşacaktır:



!}

Böylece, metin giriş penceresinde, e-posta adıyla ve görünür uzunluğu 30 karakter olan bir e-posta adresi girilecektir. Abone ol yazan butona tıkladıktan sonra scripte adres geçecektir. ras.php posta listesine eklenecek.

Sonra, betiğe bakalım ras.php e-posta adresini bir dosyada saklayacak, sonuç hakkında bir mesaj ve abonelik ve abonelikten çıkma formları görüntüleyecektir. Komut dosyası oldukça basit bir şekilde yürütülebilir - adresi kaydedin, uygun mesajı görüntüleyin. Ancak sorunlar ortaya çıkabilir: Birisi yanlışlıkla birkaç kez abone olabilir, biri yazım hatası yapabilir ve adres alanına geçersiz bir karakter girebilir veya kasıtlı olarak çöp girebilir. Bu durumda mail listesi kirlenecek ve yanlış adresler scriptte hatalara yol açacaktır. Sonuç açıktır - adresi kaydetmeden önce, elektronik posta kutularının adreslerini adlandırma standartlarına uygunluğunun yanı sıra posta listesindeki varlığını kontrol etmelisiniz. Kodu parçalara ayırmamak için kodun kendisinde yorum yapacağım:

$dosya=" maillist.txt"; // adresleri içeren dosya

error_reporting(0); // olası hatalar hakkındaki mesajların çıktısını devre dışı bırakın

işlev test_mail($char ) // adresin gerçekliğini kontrol eden fonksiyon
{
$ bayrağı = YANLIŞ;
if(eregi("^[_\.0-9a-z-]+@([-0-9a-z\.]+)\.((2,3)$)", $char )) $flag = doğru;
eğer ($flag ) geri dönerse doğru;
başka dönüş YANLIŞ;
}

$email = trim(strtolower($email )); // girilsin
// ile adres formu
// küçük harfler

işlev copy_mail($char ) // veritabanında böyle bir adres olup olmadığını kontrol edin
{
$dosya=" maillist.txt";
$list = dosya($dosya);
için ($i = 0; $i< sizeof ($list ); $i++ )
if ($char == trim($list [$i ])) $flag = doğru;

Eğer ($flag ) dönerse doğru;
başka dönüş YANLIŞ;
}

Eko"

";

Eğer (is_file($file )) ise // adresi yukarıdaki işlevlerle daha fazla kontrol edin
{
$maillist = dosya($dosya);
if (!$email == "") (
if (test_mail($email)) (
eğer (!kopya_posta($e-posta))
{
$maillist = "\n$email";
yazdır "E-posta: $email posta listesine eklendi

";
}
başka yazdır "E-posta: $email zaten veritabanında";
}
yoksa "E-posta: $email mevcut değil" yaz";
}
başka yazdır"";
}
aksi takdirde "$dosya bulunamadı! Lütfen yazdırın" bilgi vermek bana hata hakkında.";
// abone olma ve abonelikten çıkma teklifini içeren bir form görüntüle
Eko "
Haberlere kayıt ol
";
yankı "Posta girin:
";

Eko"



";
yankı "Posta listesinden çık
Posta giriniz:";
Eko "
";
// kullanıcı abonelikten çıkmaya karar verirse, girileni silin adres
$ bayrağı = YANLIŞ;
$fw = fopen($dosya , " w");
için ($i = 0; $i< sizeof ($maillist ); $i++ )
if (trim(strtolower($delmail )) == trim(strtolower($maillist [$i ])))) (
if (!$delmail == "")
{
Yazdır"
$delmail posta listesinden kaldırıldı
";
$ bayrağı = doğru;
}
}
başka fputs($fw , $maillist [$i ]); // girilen adres veritabanında yok
fclose($fw);
if (!$delmail == "")
eğer (!$flag ) yazdır "
$delmail posta listesinde bulunamadı
";
?>

İşte adresleri kaydetmek ve silmek için kodumuz hazır. Şimdi posta gönderme araçlarıyla ilgilenmemiz gerekiyor. Outlook üzerinden göndermeyecek miyiz? Daha önce de belirtildiği gibi, özel bir forma gireceğimiz bir şifre ile gönderme olasılığını koruyacağız:




Giriş alanı pass olarak adlandırılır ve şifreyi girmek için kullanılır. Enter yazan butona tıkladıktan sonra betiğe şifre geçecektir. out.php:

$subject = "Site mail listem"; // posta konusu
$fromemail = "benim@soap"; // adresiniz (cevaplar için)
$dosya=" maillist.txt"; // abone adreslerinin listesi
$sifre = "gizlisifre"; // posta için şifreniz

eğer ($şifre == $şifre) // şifre doğruysa
// ardından formu giriş alanlarıyla birlikte görüntüleyin:
// gönderenin adresi, mesaj metni, mesaj gövdesi
// gönder butonu
// butona bastıktan sonra datayı betiğe aktarıyoruz
gönder.php
{
Eko "
";
yankı "gönderen adresi

";
yankı "e-posta konusu
";
Eko "
mektubun metni:
";
Eko "
";
Yazdır" üssünde ".sizeof($maillist) ." adresler

";
için ($i = 0; $i< sizeof ($maillist ); $i ++) print $maillist [$i ]. "
";
}
// şifre yanlışsa - lütfen tekrar girin
başka yankı"
";

Posta gönderecek olan yalnızca bir komut dosyasını dikkate almaya devam ediyor:

$odr = "\n\n\n Abonelikten çıkmak için bağlantıyı kullanın\n";
$homepage = "http://site.url/ras.php";

error_reporting(0);
$konu = $HTTP_POST_VARS["konu"];
$body = $HTTP_POST_VARS["gövde"];
$konu = eğik çizgi($konu);
$body = stripslashes($body );

$dosya=" maillist.txt";
$maillist = dosya($dosya);

"Üste" yazdırın. sizeof($maillist ) ." adresleri
";
için ($i = 0; $i< sizeof ($maillist ); $i ++)
{
#echo($posta listesi[$i]."
");
mail($maillist [$i ], $konu ,
$body ."$odr $homepag ?delmail=$maillist [$i ]",
"Kimden: $fromemail");
}
yankı "Bitti!";

Burada her şey basit: önceki formda girilen değerleri alıyoruz ve bir döngüde sırayla adreslerin her birine gönderiyoruz.

Bu oldukça kolay! Artık kendi posta listenizi çalıştırmak için güçlü bir aracınız var. Senin için daha fazla kural yok. Ne istersen, posta listene yaz. Abonelik formlarının yapılandırılmasında ve görünümünde tam özgürlük.

Tabii ki, bu kod yalnızca minimum bir kümedir. Örneğin, posta işlevini kullanarak yeni bir abone hakkında bir bildirim düzenleyebilir ve aboneye başarılı bir kayıt hakkında bilgi verebilir, posta listesi hakkında daha fazla bilgi verebilirsiniz.

Elbette, tam özgürlükten bahsetmişken, hiçbir şekilde zorunlu abonelikten bahsetmiyordum? Ya da daha basit bir şekilde spam. Aniden birisi bu şekilde spam göndermeye karar verirse, barındırma yönetiminin bu konuda hemen şikayet etmeye başlayacağını hesaba katmasına izin verin. Barındırmanın ücretli olup olmaması da önemli değil, barındırma idaresi bu tür eylemleri fark ederse, kayıplar için tazminat ödemeden hizmetlerinin size sunulmasını iptal edecektir. Ve ücretsiz barındırma ile daha da sıkı. İlk olarak, bu işlevi açmak için yönetimden kişisel izin almanız gerekir ve ikincisi, kural olarak dakikada 1 harf sınırı vardır. Beyler spam gönderenler, kesilsin :)

Böyle neşeli bir notla bitirelim.




Daha fazla sorunuz varsa veya net olmayan bir şey varsa - bölümümüze hoş geldiniz.

Selamlar sevgili arkadaşlar!
Son makalede, kendi posta hizmetinin veya posta komut dosyasının sıcak konusu üzerinde biraz durdum. Konu çok sıcak çünkü. Smartresponder artık aktif değil ve çoğu İnternet kullanıcısı bir yedek arıyor. Ne yazık ki, buna denk bir Akıllı Yanıtlayıcı yok ve muhtemelen de olmayacak! Bülten veya artık moda olan adıyla E-posta pazarlaması, iş yapmak için en etkili araçtır. Daha basit bir ifadeyle, konunuzla ilgilenen insanları bir araya getirmeden, mail atmadan hiçbir markanın tanıtımını yapamazsınız. İlgilenen kişilerden oluşan bir kitle toplamak ve onları bir konuda yönlendirmek için, toplu posta mektupları için bir hizmet olan bir posta listesi hizmetine ihtiyacınız vardır. Son makalede, daha doğrusu videoda, posta hizmetleri sunan siteleri gösterdim ve küçük bir genel bakış yaptım. Pek çok teklif var ve BURADA bilmece başlıyor, özellikle yeni başlayanlar için. Fiyat etiketleri yüksektir ve fiyatın aşağı yukarı uygun olduğu yerlerde pek çok rahatsızlık vardır. Bazen hizmetler gerçek maliyeti gizler, örn. düşük tarifeler beyan eder ve böylece daha fazla sayıda kullanıcıyı çekmeye çalışır ve daha fazla para kazanma hedefiyle. Ve böylece, ilk eylem: ucuzluk veya başka bir avantajlı teklif sizi baştan çıkardı.

Bir hesap açarsınız, veritabanını aktarırsınız, tüm yakalama sayfalarını yeniden yaparsınız, sitelerinizdeki makalelerdeki bağlantıları düzeltirsiniz, mümkünse tüm gönderileri, abonelik formlarının (bağlantıların) bulunduğu ürünleri düzenlersiniz. Kısacası harika bir iş çıkarıyorsunuz. Yeni bir posta platformuyla çalışmaya dahil oldunuz ve işte eğlence başlıyor. İkinci eylem: Bir reklam kampanyası yürüten posta hizmeti, İnternet kullanıcılarının cehaletine ve dikkatsizliğine dayanır. Veritabanına bir mektup gönderiyorsunuz, ikincisini hazırlıyorsunuz... Tarife planınızın yeteneklerini çoktan tükettiği için artık ikinci bir mesaj gönderemeyeceğiniz ortaya çıktı. Tarife planının açıklamasında olası mektup gönderme sayısının çok az olduğu ortaya çıktı. Ucuzluğun altında, gizli olan tam olarak gönderme kısıtlamaları veya mektupların sınırıdır. Başka bir mektup göndermek için gönderim sayısını satın almanız gerekir ve bunlar öngörülemeyen masraflardır. Sonuç olarak, yine mahvoldun. Şahsen, uygun bir posta listesi hizmeti bulamadım: bir fiyat etiketi veya bir dizi araçla işlevsellik veya İngilizce veya her harfin manuel olarak denetlenmesi veya .... Ancak en tehlikeli şey, uzun süredir ve zorlukla inşa ettiğiniz üssü basitçe kaybetme olasılığıdır.
Uzun süre “kendi posta hizmeti” konusunu düşündüm. Smart varken konu pek ısınmadı. Senaryo aramaya başladım. BOX-MAIL ile başladım, ardından Vyshuhol veya Postal Woodpecker ile birkaç eklenti denedim. AMA, çalıştıktan sonra, normal bir barındırmada kendi posta hizmetinizi oluşturmanın gerçekçi olmadığını fark ettim. Biliyorsunuz SPAM gönderenlerin işi daha aktif hale geldi ve internette bu illegal aktiviteyi engelleyen bir çok şey ortaya çıktı. Her şeyden önce, yasal gerekçelerle yasal olarak toplanmış bir temelde bir posta listesi yürütmeye çalışan vicdanlı insanlar bundan muzdariptir. Sağlayıcılar, posta trafiği için kotalar getirmiştir. Günde 100-500 e-posta gönderimi, toplu e-posta gönderimini sağlayamaz. "Son dakika haberlerinizi" göndermek oldukça uzun sürebilir, yani. Abonelik listenizin sonu için haberiniz artık geçerli olmayacak! Sonuç (bence) - normal barındırmadan toplu postalama alakalı değil. Burada aklıma birkaç yıl önce gelen ve hatta test ettiğim MailWizz scripti geldi. Ama sonra Smart vardı! Özel sunucuların maliyeti o zamanlar oldukça yüksekti - iş önce askıya alındı ​​​​ve sonra betiğin varlığını unuttum. Sadece hayat boğazıma geldiğinde hatırladım. Bilgi toplamak için zaman harcamak zorunda kaldım. Bizim işimiz yararlı bir şeyi gizemle örtmektir. Panelin gözden geçirilmesi dışında hiçbir şey bulunamadı. Komut dosyasının kendisi İngilizce'dir - bir Ruslaştırıcıya ihtiyaç vardı. Tecrübe var, bilgi yeterli - sorun çözüldü. Ve şimdi kendi posta hizmeti kuruldu ve zaten çalışıyor. Nasıl çalışır, videoyu izlemek daha iyidir:


Ve böylece kendi posta hizmetinizin avantajları:

- bağımsızlık ve bunun sonucunda durumun efendisi olma fırsatı. Göndermek istiyorum, göndermemek istiyorum.
- sınırsız sayıda harf
- harika araç seti


— kullanım kolaylığı ve uygun gezinme çubuğu


- basit kurulum ve yapılandırma kolaylığı
- tasarruf. Bir kez ödeyin ve ömür boyu kullanın.

Herkes kendi seçimini yapar. Ana şey - üssün HER ŞEY olduğunu unutma! Kazançlarımızın abonelik listesine bağlı olması - Ne kadar çok abone olursa o kadar çok kazanırız. Faaliyetimizin konusu veya nişi, bir temele sahip olmanın önceliğini etkilemez.

İnternette birçok ücretsiz hizmet var. Abonelere posta mektupları için hizmetler dahil. Bazıları çok iyi. Ancak ücretsiz oldukları için, reklamların oradaki mektuplarda göründüğü anlamına gelir. Evet ve bir servis temsilcisinin logosuna sahip birçok abonelik formu pek çoğuna uymuyor.

Öyleyse neden postalarınız için basit bir motor yazıp kendi başınıza mektuplar göndermiyorsunuz?

Bakalım bunun için neye ihtiyacımız var. Ziyaretçilerin bülteninize abone olabilmesi için, bir e-posta adresi girmek için bir forma ihtiyacınız vardır. Adresi girdikten sonra hatırlanmalı. Her satıra bir adres gelecek şekilde maillist.txt dosyasındaki adresleri kaydedelim. Adres kaydedildikten sonra, uygun mesajı görüntüleyelim ve başka bir adrese abone olmak veya mevcut bir adresi silmek için bir form görüntüleyelim. Aslında neredeyse hepsi bu. Geriye yalnızca mektup gönderme yeteneği eklemek kalır. Güvenlik için, mektup gönderme yeteneğine bir şifre koyalım - şifre girmek için bir form gereklidir. Dahlia, gönderenin adresini ve konusunu ve ayrıca metnin kendisini doldurmak için formlara ihtiyaç duyacaktır. Ve son olarak, mektupları gönderecek olan komut dosyasının kendisi. Ve şimdi her şey yolunda.

Bir e-posta adresi girme formu, yalnızca bir adres girmek için bir pencere ve onaylamak için bir düğmeden oluşacaktır:


Böylece, metin giriş penceresinde, e-posta adıyla ve görünür uzunluğu 30 karakter olan bir e-posta adresi girilecektir. Abone ol butonuna tıkladıktan sonra, adres, posta listesine dahil edilmek üzere ras.php betiğine iletilecektir.

Ardından, e-posta adresini bir dosyada saklayacak, sonuç hakkında bir mesaj ve abone olma ve abonelikten çıkma formlarını görüntüleyecek ras.php betiğine bakalım. Komut dosyası oldukça basit bir şekilde yürütülebilir - adresi kaydedin, uygun mesajı görüntüleyin. Ancak sorunlar ortaya çıkabilir: Birisi yanlışlıkla birkaç kez abone olabilir, biri yazım hatası yapabilir ve adres alanına geçersiz bir karakter girebilir. Bu durumda mail listesi kirlenecek ve yanlış adresler scriptte hatalara yol açacaktır. Sonuç açıktır - adresi kaydetmeden önce, elektronik posta kutularının adreslerini adlandırma standartlarına uygunluğunun yanı sıra posta listesindeki varlığını kontrol etmelisiniz. Kodu parçalara ayırmamak için kodun kendisinde yorum yapacağım:

$file="maillist.txt"; // adresleri içeren dosya error_reporting(0); // olası hatalar hakkında mesajların çıktısını devre dışı bırak function test_mail($char) \.]+)\.((2,3)$)/", $char)) true döndür; false döndür; ) // adresi al forma küçük harflerle girilir $email = trim(strtolower($email )); function copy_mail($char) // veritabanında böyle bir adres olup olmadığını kontrol edin ( global $file; $list = file($file); for ($i = 0; $i< sizeof ($list); $i++) if ($char == trim($list[$i])) return true; return false; } echo "

"; if (is_file($file)) // yukarıdaki işlevlerle adresi kontrol edin ( $maillist = file($file); if (!$email == "") ( if (test_mail($email)) ( if (! copy_mail($email)) ( $maillist = "\n$email"; yazdır "E-posta: $email posta listesine eklendi
"; ) else print "Email: $email zaten veritabanında"; ) else print "Email: $email yok"; ) başka yazdır""; ) yoksa "$dosya bulunamadı! Lütfen bilgi vermek bana hata hakkında."; // abone olma ve abonelikten çıkma teklifi içeren bir form görüntüle yankı "
Haberlere kayıt ol
"; echo "Mail giriniz:
"; Eko "


"; echo "Posta listesinden çık
mail yazın:"; yankı "
"; // kullanıcı abonelikten çıkmaya karar verirse, girilen adresi silin $flag = false; $fw = fopen($file, "w"); for ($i = 0; $i< sizeof ($maillist); $i++) if (trim(strtolower($delmail)) == trim(strtolower($maillist[$i]))) { if (!$delmail == "") { print "
$delmail posta listesinden kaldırıldı
"; $flag = true; ) ) else fputs($fw, $maillist[$i]); // girilen adres veritabanında yok fclose($fw); if (!$delmail == "") if (!$ bayrağı) yazdır "
$delmail posta listesinde bulunamadı
";

İşte adresleri kaydetmek ve silmek için kodumuz hazır. Şimdi posta gönderme araçlarıyla ilgilenmemiz gerekiyor. Outlook üzerinden göndermeyeceğiz!?. Daha önce de belirtildiği gibi, özel bir forma gireceğimiz bir şifre ile gönderme olasılığını koruyacağız:


Giriş alanı pass olarak adlandırılır ve şifreyi girmek için kullanılır. Giriş etiketli düğmeye tıkladıktan sonra, şifre out.php betiğine iletilecektir:

$subject = "Site mail listem"; // posta konusu $fromemail = "benim@soap"; // adresiniz (cevaplar için) $file = "maillist.txt"; // abone adreslerinin listesi $password = "secretpassword"; // postalama şifreniz if ($_POST["pass"] == $password) // eğer şifre doğruysa // formu giriş alanlarıyla birlikte görüntüleyin: // gönderenin adresi, mesaj gövdesi, mesaj gövdesi // düğme // göndermek için düğmeye tıkladıktan sonra, verileri send.php betiğine aktarıyoruz ( echo "


"; yankı "gönderen adresi

"; echo "e-posta konusu
"; Eko "
mektubun metni:
"; Eko "
"; Yazdır " üssünde ".sizeof($maillist) ." adresler

"; için ($i = 0; $i< sizeof ($maillist); $i++) print $maillist[$i]. "
"; ) // şifre yanlışsa - lütfen tekrar girin, aksi takdirde yankı "
";

Posta gönderecek olan yalnızca bir komut dosyasını dikkate almaya devam ediyor:

$odr = "\n\n\n Abonelikten çıkmak için bağlantıyı kullanın\n"; $homepage = "http://site.url/ras.php"; error_reporting(0); $konu = $HTTP_POST_VARS["konu"]; $body = $HTTP_POST_VARS["gövde"]; $konu = şerit eğik çizgiler($konu); $body = stripslashes($body); $file="maillist.txt"; $maillist = dosya($dosya); "Temelde" yazdırın. sizeof($maillist) ." adresleri
"; için ($i = 0; $i< sizeof ($maillist); $i++) { #echo($maillist[$i]."
"); mail($maillist[$i], $subject, $body ."$odr $homepag?delmail=$maillist[$i]", "Kimden:<$fromemail>"); ) yankı "Bitti!";

Burada her şey basit: önceki formda girilen değerleri alıyoruz ve bir döngüde sırayla adreslerin her birine gönderiyoruz.

Telif hakkı Vladislav Putyak'a aittir http://ru-coding.com/ . Değişiklikler ve eklemeler

PHP Bülten, sitenizden e-posta bültenleri düzenlemek için bir e-posta pazarlama aracıdır, herhangi bir bilgi. Komut dosyasının kullanımı kolaydır, kurulumu kolaydır, kurulumu çok yönlüdür ve minimum barındırma gereksinimleri vardır. PHP Newsletter, PHP ile yazılmıştır ve kategorilere göre sıralayarak bir posta listesi oluşturma, görsel mektup şablon düzenleyicisi, ekli mektup gönderme, SMTP sunucusu aracılığıyla posta gönderme, e-posta veritabanını içe/dışa aktarma, abone yönetimi gibi birçok kullanışlı özellik ve işleve sahiptir. Bir e-posta pazarlamacısı için otomatik yanıtlayıcı posta listeleri, posta istatistikleri ve çok daha fazlası.
Gereklilik

PHP 5.3 ve üstü
- MySQL veritabanı 4.1 ve üzeri
- Posta()
-simge
- MB Dizisi
-zip

olasılıklar

PHP Newsletter, e-posta haber bültenleri oluşturmak, göndermek ve takip etmek için ihtiyacınız olan her şeye sahiptir. Özellikleri içerir:

  • Kullanışlı WYSIWYG editörü

Yerleşik WYSIWYG düzenleyici, e-posta şablonları oluşturmanıza ve düzenlemenize olanak tanır. Metni biçimlendirebilir, resim yükleyip yapıştırabilir, bağlantılar ekleyebilir ve daha fazlasını yapabilirsiniz.

  • E-postaları smtp sunucusu, mail() ve sendmail yoluyla gönderme

PHP Bülten, standart php mail() işlevi aracılığıyla veya soketler veya sendmail posta aktarım aracıları kullanarak smtp sunucusu aracılığıyla posta gönderebilir;

  • otomatik yanıtlayıcı

Daha sonra programa göre belirtilen sırada otomatik olarak gönderilecek olan posta listeleri oluşturabilirsiniz. Tek ihtiyacınız olan cron'u kurmak ve bir posta listesi oluşturmak.

  • Abonelikten çıkma seçeneği ile bülten abonelik formu

PHP Bülten, bülten aboneliği oluşturmanıza ve abonelikten çıkma formları oluşturmanıza olanak tanır. Formun html kodunu web sitenize yerleştirerek formu web sitenize ekleyebilirsiniz.

  • Posta formatı seçimi (düz ve html)

Yerleşik e-posta şablonu düzenleyicisiyle çekici HTML e-postaları veya düz metin e-postaları oluşturabilirsiniz.

  • En bilinen kodlamalar için destek

PHP Newsletter 35'in üzerinde farklı ulusal kodlamayı destekler.

  • Ek ekle ve gönder

Komut dosyası, ekleri yüklemek ve göndermek için tam destek içerir.

  • Posta listesine standart Öncelik (toplu, gereksiz veya liste) ve liste-aboneliği iptal etme başlıklarını ekleme

E-postalarınızın spam olmasını önlemek için, posta listelerine Öncelik (toplu, gereksiz veya liste) ve liste-abonelikten çıkma başlıkları eklemeniz önerilir.

  • E-posta başlığına bir DKIM imzası ekleme

Meşru e-postanın sınıflandırılmasını ve tanımlanmasını iyileştirmek için PHP Bülten aracı, giden e-postaların başlıklarına bir DKIM imzası (bir alan adıyla ilişkilendirilmiş bir dijital imza ekleyerek bir mektubu gönderenin kimliğini doğrulamak için bir teknoloji) eklemenizi sağlar. e-postalar.

  • E-posta kişiselleştirme

E-posta kişiselleştirme, e-posta alıcınız üzerinde iyi bir ilk izlenim bırakmanın en etkili yollarından biridir çünkü kişiselleştirilmiş e-postaların açılıp okunma olasılığı istatistiksel olarak daha yüksektir. E-posta şablonuna bir etiket ekleyin İSİM ve otomatik olarak abonenin adıyla değiştirilecektir.

  • Sınırsız bir posta listesi oluşturun
  • Abone listesi yönetimi

Web arayüzü aracılığıyla abone listesini yönetebilirsiniz: aboneleri görüntüleyin, ekleyin, düzenleyin ve silin.

  • E-posta Adreslerini İçe/Dışa Aktarma

PHP Newsletter, e-posta adreslerini içe ve dışa aktarmak için bir araç sağlar. Verileri düz metin veya MS Excel dosyasından içe aktarabileceğiniz gibi, verileri metin ve MS Excel dosyasına da aktarabilirsiniz.

  • Posta günlüğü

Her postalama için, gönderilen ve gönderilmeyen mektupların sayısına ilişkin ayrıntılı istatistikler girilecektir. Kaç kullanıcının e-posta açtığı hakkında da bilgi alabilirsiniz. Ayrıca, istatistikleri MS Excel dosyasına aktarabilirsiniz.

  • Yöneticiden web arayüzü

Çalışmak ve posta listesini yönetmek için, web arayüzü üzerinden erişilebilen kullanışlı ve kullanımı oldukça kolay bir yönetici paneli sağlanır. Çok sayıda ayar, sistemi gereksinimlerinize göre hızlı bir şekilde "keskinleştirmenize" olanak tanır.

  • Kurulum sihirbazı

Kurulum, web tarayıcınızdan kolayca başlatılır. Veritabanına erişime girmeniz ve kuruluma devam etmeniz gerekecek ve kurulum sihirbazı gerekli tüm eylemleri gerçekleştirecektir.

Sürüm 4.1.x'teki Yenilikler

Kurulum

  • Dağıtımı web sitenizdeki herhangi bir dizine açın, örneğin "/phpnewsletter" Root'a kurulabilir;
  • Kurulum sihirbazını çalıştırın, bunun için tarayıcıya şunu yazın: http://your_site/package_with_script/install/;
  • Kurulum prosedürünün ardından "/phpnewsletter/install/" dizinini kaldırın.

*Herhangi bir nedenle kurulum sihirbazından kurulum yapamadıysanız, komut dosyasını manuel olarak kurabilirsiniz.

  • dump.sql dosyasından MySQL veritabanı tabloları SQL sorgusu yerleştirin. Çoğu barındırma sağlayıcısı tarafından sağlanan phpMyAdmin gibi bir web arayüzü aracılığıyla bunu yapmak daha kolaydır.

Tabloları veritabanına yerleştirdikten sonra, herhangi bir metin düzenleyicide config/default.config.php dosyasını açın ve MySQL veritabanına bağlanmak için parametreleri yazın. burada $PNSL["config"]["db"]["host"] MySQL sunucu adresidir, $PNSL["config"]["db"]["name"] veritabanı adıdır, $PNSL[" config "]["db"]["user"] kullanıcı adıdır, $PNSL["config"]["db"]["passwd"] şifredir. config.php olarak kaydet Yönetici paneline girmek için şifreyi girin 1111

Ayar

  • Bir web sayfasına haber bülteni abonelik formu ekleme
$url = "http://yoursite/phpnewsletter/?task=subform""; $get_content = file($url); $get_content = implode($get_content, "\r\n"); preg_match("/
(.*)<\/div>/isU", $get_content, $out); echo $out;
  • Normal statik web sayfaları için html kodunu yapıştırın:
İsim
E-posta
  • Postayı smtp sunucusu üzerinden yapılandırma

Smtp sunucusu üzerinden mail göndermek için aşağıdaki adımları takip ediniz. Yönetici paneline gidin, ardından "Ayarlar" bölümüne gidin ve "SMTP sunucusu" sekmesinde smtp sunucusunu, kullanıcı adını, şifreyi ve smtp sunucusu bağlantı noktasını (varsayılan olarak 25) belirtin. "Gönderme yöntemi" - SMTP sunucusunu seçin.

  • Mail.ru aracılığıyla e-posta göndermeyi ayarlama

Yönetici e-postası: [e-posta korumalı]
Posta kutusu girişi: [e-posta korumalı]
Şifre: qwerty
smtp sunucusu: smtp.mail.ru
Sunucu smtp bağlantı noktası: 25
Kimlik doğrulama yöntemi: GİRİŞ

  • Gmail aracılığıyla e-posta göndermeyi ayarlama

Yönetici e-postası: [e-posta korumalı]
Posta kutusu girişi: [e-posta korumalı]
Şifre: qwerty
smtp sunucusu: smtp.gmail.com
Sunucu smtp bağlantı noktası: 465

Kimlik doğrulama yöntemi: GİRİŞ
Gönderme yöntemi: SMTP sunucusu

  • Yandex posta yoluyla mektup göndermeyi ayarlama

Yönetici e-postası: [e-posta korumalı]
Posta kutusu girişi: vasyapupkin
Şifre: qwerty
smtp sunucusu: smtp.yandex.ru
Sunucu smtp bağlantı noktası: 465
Güvenli bağlantı (SSL) ile bağlan: Evet
Kimlik doğrulama yöntemi: GİRİŞ
Gönderme yöntemi: SMTP sunucusu
DKIM imzası ekle

Öncelikle, bir DKIM anahtarı oluşturmanız gerekir. Çevrimiçi hizmeti kullanalım http://dkim.worxware.com/createkeys.php

"Domain" alanında etki alanınızı, "Identity" alanında ise PHP Newsletter ayarlarında belirttiğiniz e-posta adresini "E-posta" bölümünde belirtin. Formun tüm alanlarını doldurduktan sonra "Gönder" düğmesine tıklayın, bundan sonra zip arşivine bir bağlantı görünmelidir. Arşivi bilgisayarınıza indirmek için bu bağlantıya tıklayın ve ardından paketinden çıkarın. 4 dosya içermelidir: .htkeyprivate (özel anahtar), .htkeypublic (ortak anahtar), DNS _resource_record.txt ve PHPM ailer_code_plus_instructions.txt .htkeyprivate dosyasını keyprivate klasöründeki web sunucusuna kopyalayın.

PHPMailer_code_plus_instructions.txt dosyasını açın Ardından, yönetim paneline gidin, "Posta Seçenekleri" sekmesindeki "Ayarlar" bölümünde, "DKIM İmza Ayarları" alanlarına, PHPMailer_code_plus_instructions.txt dosyasında belirtilen değerleri girin "Signed Domain" alanına $mail- >DKIM_domain'den, $mail->DKIM_selector'dan "Selector" alanına, $mail->DKIM_passphrase'den "Keyword" alanına ve "Signed kimlik" alanına değeri girin. "E-posta" bölümünde ayarlarınızda belirttiğiniz e-posta adresini girin "E-posta başlığına DKIM imzası ekle" kutusunu işaretleyin ve "uygula" düğmesine tıklayın.

Hepsi bu değil. Gönderenin sunucusunun geçerliliğini DNS kaydından teyit edebilmek için, DNS yapılandırmasında txt kaydına DKIM eklemelisiniz. Bunun için domain kontrol paneline gitmeniz gerekmektedir (bunu yapmak için bu domain için yönetici haklarına sahip olmanız gerekmektedir). Bu kaydın değeri DNS _resource_record.txt dosyasından alınmıştır.

Not: Komut dosyası hakkında daha fazla bilgi için kaynak kodun benioku dosyasına bakın.



 

Şunları okumak faydalı olabilir: