2011-08-12 13 views
6

मैंने स्टैक ओवरव्लो पर इस मुद्दे के बारे में बहुत सारे प्रश्न और उत्तर पढ़े हैं, लेकिन मैंने जो भी पढ़ा है, उनमें से कोई भी मेरे प्रश्न का उत्तर नहीं देता है।लोगों की एक बड़ी संख्या में मेल भेजना

मैं मेलिंग सूची नहीं चाहता हूं। अगर वे थोक ईमेल प्राप्त करना चाहते हैं तो लोग एक बॉक्स पर टिकटें। कोई गलत ईमेल नहीं है क्योंकि ईमेल ईमेल का उपयोग कर सक्रिय हैं। तो कोई उछाल की जांच नहीं। हालांकि, मैं पहले से ही PHPMailer का उपयोग करता हूं (इसलिए हेडर और ऐसे कोई समस्या नहीं है) और ईमेल के 'to' फ़ील्ड में प्रत्येक पता जोड़ें। इसका मतलब है कि हर कोई सभी ईमेल देख सकता है (ईमेल स्रोत पढ़कर या अपने ईमेल क्लाइंट में "सभी को जवाब" मारकर), जो अन्य उपयोगकर्ताओं द्वारा वांछनीय नहीं होगा। सवाल यह है:

1) क्या मुझे प्रत्येक ईमेल को व्यक्तिगत रूप से भेजना चाहिए, या सभी पते 'बीसीसी' फ़ील्ड में रखना चाहिए? 2) क्या इससे कुछ मेलसर्वर ईमेल को "स्पैम" के रूप में चिह्नित नहीं करेंगे, इससे कोई फर्क नहीं पड़ता कि यह कितनी अच्छी तरह से संरचित है? यदि हां, तो क्या इसे रोकने के लिए कोई तरीका है (पते को कुछ श्वेतसूची में जोड़ने या डोमेन कुंजी या यूनिक्स क्रॉन नौकरियां सेट करने के अलावा)?

धन्यवाद!

यहां वर्णित सभी चीजों को उपयोगकर्ता को एक फॉर्म का उपयोग करके "सब्सक्राइब करने" की आवश्यकता होती है, और उसके बाद उनके ईमेल पते की पुष्टि करें (जैसे PHPList)। हालांकि, जब लोग पंजीकरण करते हैं, तो मैं पहले ही पुष्टि के लिए पूछता हूं, इसलिए उन्हें बार-बार पूछने में कोई समझ नहीं है। मेरा मौजूदा कोड डेटाबेस की जांच करता है; यदि उनकी "प्राप्त-मूवी-मेल" बिट 1 पर सेट की गई है (इन्हें एक एसक्यूएल क्वेरी का उपयोग करके एकत्र किया जाता है), डेटाबेस में एक नई फिल्म जोड़ने पर उन्हें एक ईमेल भेजा जाता है। इसलिए, यदि आप अभी भी यह मेलिंग सूची मानते हैं (जो मुझे लगता है कि यह है, लेकिन शायद मेरी परिभाषा मौजूदा सॉफ़्टवेयर सुविधाओं को परिभाषित करती है), मुझे यह चाहिए, 1) उपयोगकर्ताओं को सूची में सदस्यता लेने का कोई तरीका PHP कोड (ईजी अगर "मैं डेटाबेस पर हर बार एक फिल्म अपलोड करने के लिए एक ईमेल प्राप्त करना चाहता हूं" चेकबॉक्स चेक किया गया है, मेरे फॉर्म प्रोसेसिंग कोड में मैं उन्हें सब्सक्राइब करूंगा), और 2) PHP के साथ लोगों को मेल करने का एक तरीका (आईई एक समारोह जैसे send_mail_to_list ($ सामग्री) जो "सदस्यता जोड़ें" फ़ॉर्म सबमिट किए जाने पर लोगों को ईमेल भेजता है)। क्या ऐसी मेलिंग सूची प्रबंधन सॉफ्टवेयर है?

+1

क्षमा करें, लेकिन यह मुझे एक मेलिंग सूची की तरह एक बहुत भयानक लग रहा है। – John

+0

कुछ स्पैम फ़िल्टर ईमेल के लिए स्पैम स्कोर को बढ़ावा देते हैं जिसमें प्राप्तकर्ता का पता To: फ़ील्ड में होता है (जो मामला है जब आप बीसीसी: उन्हें)। बीसीसी का उपयोग न करने के अलावा, आप इसके बारे में इतना कुछ नहीं कर सकते हैं। –

+0

ऐसी कई सेवाएं हैं जो आपकी मदद करेंगे ... Google समूह? MailChimp? Silverpop? जब तक आप एक स्पैमर नहीं हो जाते। –

उत्तर

3

आप चाहिए ईमेल की सूची पर पाश और प्रत्येक पते के लिए एक व्यक्ति के ईमेल भेजें:

$mail = new PHPMailer(); 
$mail->IsSMTP();   // set mailer to use SMTP 
$mail->Host = "mail.{domain_name}.com"; // specify main and backup server 
$mail->SMTPAuth = true;   // turn on SMTP authentication 
$mail->Username = "{username}"; // SMTP username 
$mail->Password = "{password}";  // SMTP password 

$emailFrom = '{email_address}'; 

$mail->From = $emailFrom; 
$mail->IsHTML(true); // set email format to HTML if needed 

$emailSubject = '{your subject}'; 
$emailBody = "Whatever content you are sending."; 

$mail->Subject = $emailSubject; 
$mail->Body = $emailBody; 

foreach($emails => $email) { 

    $emailTo = $email['email']; 
    $emailToName = $email['name']; 

// send an email to customer 
    $mail->AddAddress($emailTo, $emailToName); 

    if(!$mail->Send()) 
    { 
     echo 'failed'; 
    } 

    $mail->ClearAddresses(); 
} 
1

1) क्या मुझे प्रत्येक ईमेल को व्यक्तिगत रूप से भेजना चाहिए, या सभी पते 'बीसीसी' फ़ील्ड में रखना चाहिए?

निश्चित रूप से व्यक्तिगत रूप से। बीसीसी को आपका ईमेल स्पैम के रूप में देखा जाएगा।

2) यह कुछ mailservers "स्पैम" के रूप में ईमेल को चिह्नित नहीं चाहे कितनी अच्छी तरह से संरचित यह है नहीं होगा,? यदि हां, तो आगे बढ़ने का कोई तरीका है (इसे रोकने के अलावा कुछ श्वेतसूची या डोमेन कुंजी या यूनिक्स क्रॉन नौकरियों को सेट करने के अलावा)?

एक एसपीएफ़ रिकॉर्ड का उपयोग करने में मदद मिल सकती है। सुनिश्चित करें कि आपके सर्वर पर रिवर्स-डीएनएस कालीसूचीबद्ध नहीं है, खासकर अगर यह एक साझा होस्टिंग है।

0

मैंने इसे php में नहीं किया है क्योंकि मुझे पता है कि डिफ़ॉल्ट रूप से php में कोई हाइपर थ्रेडिंग नहीं है।

रूबी या .NET जैसी अन्य भाषाओं/ढांचे में आप हाइपर/बहु थ्रेडिंग द्वारा व्यक्तिगत ईमेल भेज देंगे। यह * निक्स क्रॉन जॉब्स दृष्टिकोण के समान है जिसे आप जानते हैं कि इसे रन टाइम पर निष्पादित किया जाता है - आप अपने द्वारा भेजे जा रहे प्रत्येक 5 पते के लिए एक थ्रेड बनाते हैं और फिर सभी थ्रेड एक दूसरे के बाद 5 मेल भेजते हैं।

ध्यान रखें कि इस दृष्टिकोण के साथ भी बोतल-गर्दन एप्लिकेशन से आपके द्वारा उपयोग किए जा रहे मेल सर्वर पर स्थानांतरित हो जाती है।तो मान लें कि आप इनबिल्ट पोस्टग्रे का उपयोग कर रहे हैं जो अपाचे वाले जहाजों - यह बड़ी मात्रा को संभाल नहीं पाएगा क्योंकि प्रत्येक थ्रेड इसमें लोड जोड़ देगा।

और यदि आप MailChimp का उपयोग कर सकते हैं तो निश्चित रूप से आपको यह सब एक साथ टालना चाहिए !!

0

प्रत्येक उपयोगकर्ता एक अलग ईमेल भेजें, केवल उन्हें संबोधित किया।

DKIM और SPF सेट करें, या कम से कम उपयुक्त एसपीएफ़ रिकॉर्ड बनाएं। डीकेआईएम को मेल सर्वर की कुछ कॉन्फ़िगरेशन की आवश्यकता होती है जो वास्तव में आपके लिए मेल भेज रही है, लेकिन विशेष रूप से बड़े ईमेल प्रदाताओं के लिए वितरण क्षमता के साथ बहुत मदद कर सकती है।

0

दूसरों के बगल में मेरी टिप होगी: ईमेल की कतार बनाए रखें जहां आप डिलीवरी दर को सीमित कर सकते हैं। कुछ ईमेल प्रदाता पसंद नहीं करते हैं जब आप एक बार में अपने डोमेन में हजारों ईमेल वितरित करने का प्रयास करते हैं।

कुछ एमटीए के साथ यह संभव होना चाहिए .. लेकिन मैंने ऐसा नहीं देखा है जो ऐसा करने के लिए पर्याप्त लचीला है। इसके लिए मैंने जो किया वह पियर क्लास Mail_Queue + क्रॉन जॉब था।

संबंधित मुद्दे