Πρόβλημα στην αποστολή newsletter

Σε αυτή την περιοχή μπορείτε να βρείτε ή να αναζητήσετε πληροφορίες σχετικές με την PHP

Συντονιστές: WebDev Moderators, Super-Moderators, PHP Moderators

Απάντηση
txc
Δημοσιεύσεις: 627
Εγγραφή: 02 Δεκ 2003 23:08

Πρόβλημα στην αποστολή newsletter

Δημοσίευση από txc » 18 Μαρ 2011 19:02

Καλησπέρα παιδιά,
μια ερώτηση,έχω μια βάση με 1000 emails, στέλνω μαζικό email μέσω newsletter και μου βγάζει το παρακάτω μήνυμα :

Warning: mail() [function.mail]: Could not execute mail delivery program '/usr/sbin/sendmail -t -i'

Καμιά ιδέα?
Το δοκίμασα σε μια τεστ βάση με 10 email και δε μου βγαίνει το παρακάτω μήνυμα
Παρατήρησα ότι από τα πολλά emails ένα έχει καταχωρηθέι με ερωτηματικό στο τέλος, μπορεί να χαλάει την αποστολή αυτό?

Ευχαριστώ

Άβαταρ μέλους
greekbytes
WebDev Moderator
Δημοσιεύσεις: 2438
Εγγραφή: 15 Νοέμ 2002 15:42
Τοποθεσία: Αθήνα
Επικοινωνία:

Πρόβλημα στην αποστολή newsletter

Δημοσίευση από greekbytes » 19 Μαρ 2011 00:31

Αν είναι δικό σου το script δοκίμασε να γκρουπάρεις τις διευθύνσεις σε ομάδες και να στέλνεις με BCC.

Η mail γενικά δεν κάνει για πολύ μεγάλο όγκο e-mail... το γράφει και στο manual:
It is worth noting that the mail() function is not suitable for larger volumes of email in a loop. This function opens and closes an SMTP socket for each email, which is not very efficient.

For the sending of large amounts of email, see the » PEAR::Mail, and » PEAR::Mail_Queue packages

txc
Δημοσιεύσεις: 627
Εγγραφή: 02 Δεκ 2003 23:08

Πρόβλημα στην αποστολή newsletter

Δημοσίευση από txc » 19 Μαρ 2011 22:06

Νια δικό μου είναι το script
Το κακό είναι ότι δεν μπορώ να κάνω τεστ γιατί πρόκειται για "σοβαρό" newsletter και δεν προβλέπεται κάποιο τέτοιο τεστ...

οπότε ίσως ψαχτώ για κάποιο έτοιμο script

Άβαταρ μέλους
greekbytes
WebDev Moderator
Δημοσιεύσεις: 2438
Εγγραφή: 15 Νοέμ 2002 15:42
Τοποθεσία: Αθήνα
Επικοινωνία:

Πρόβλημα στην αποστολή newsletter

Δημοσίευση από greekbytes » 20 Μαρ 2011 02:32

Μπορείς να γεμίσεις ένα δοκιμαστικό table με 2000 fake e-mails του στυλ test1@domain.com, test2@domain.com κ.ο.κ και να δοκιμάσεις με ή χωρίς γκρουπάρισμα αν σου χτυπάει.

txc
Δημοσιεύσεις: 627
Εγγραφή: 02 Δεκ 2003 23:08

Πρόβλημα στην αποστολή newsletter

Δημοσίευση από txc » 20 Μαρ 2011 12:55

Προτείνεις στο παρακάτω while που διαβάζω τα emails να σπάσω τις εγγραφές ανά 100 και να τις στέλνω σε ομάδες?

Κώδικας: Επιλογή όλων

 $emails =mysql_query("SELECT newsletteremail FROM newsletter");
   while ($sendemail = mysql_fetch_array($emails))
   {
    $email = $sendemail["newsletteremail"];
    mail($email,$subject,$s,$headers);

Άβαταρ μέλους
fafos
Script Master
Δημοσιεύσεις: 6235
Εγγραφή: 30 Νοέμ 2004 03:09

Πρόβλημα στην αποστολή newsletter

Δημοσίευση από fafos » 20 Μαρ 2011 16:34

an thes na kaneis dokimh feiaxe mia for kai stelne emails sto pouthena.. tha sou gemisei to email inbox me not found vevea:

Κώδικας: Επιλογή όλων

for &#40;$i = 1; $i <= 1000; $i++&#41; &#123;
    echo 'fafos'.$i.'@.pouroupoupou.in';
&#125;

an mporeis doulepse me smtp.. an den mporeis vale delay sthn apostolh me thn sleep()
Οι πάνες και οι πολιτικοί πρέπει να αλλάζονται συχνά για τον ίδιο λόγο...

Άβαταρ μέλους
mrpc
WebDev Moderator
Δημοσιεύσεις: 3393
Εγγραφή: 03 Μάιος 2000 03:00
Τοποθεσία: Εξάρχεια
Επικοινωνία:

Πρόβλημα στην αποστολή newsletter

Δημοσίευση από mrpc » 20 Μαρ 2011 16:35

Εγώ θα σου έλεγα αρχικά να αρχίσεις να χρησιμοποιείς κάποια κλάση (π.χ. phpmailer) για την αποστολή.
Από εκεί και πέρα, γενικά ο ιδανικός τρόπος για αποστολή μαζικών email είναι να σπας τη mailing list σε 200-300 mails και να στέλνεις κάθε μερικά λεπτά μέσω κάποιου cron job.

Άβαταρ μέλους
greekbytes
WebDev Moderator
Δημοσιεύσεις: 2438
Εγγραφή: 15 Νοέμ 2002 15:42
Τοποθεσία: Αθήνα
Επικοινωνία:

Πρόβλημα στην αποστολή newsletter

Δημοσίευση από greekbytes » 20 Μαρ 2011 18:25

txc έγραψε:Προτείνεις στο παρακάτω while που διαβάζω τα emails να σπάσω τις εγγραφές ανά 100 και να τις στέλνω σε ομάδες?

Κώδικας: Επιλογή όλων

 $emails =mysql_query&#40;"SELECT newsletteremail FROM newsletter"&#41;;
   while &#40;$sendemail = mysql_fetch_array&#40;$emails&#41;&#41;
   &#123;
    $email = $sendemail&#91;"newsletteremail"&#93;;
    mail&#40;$email,$subject,$s,$headers&#41;;
Σε κάτι αντίστοιχο εγώ έκανα αυτό:

Κώδικας: Επιλογή όλων

$emails_per_group = 100; // posa mails tha exei kathe group 
$email_groups = array&#40;&#41;; // ta email se group sti morfi "foo@bar.com;foo@bar.com"
$emails = array&#40;&#41;; // ola ta email pou tha traviksei apo tin vasi

// edw gemise to $emails array me ena select apo ti vasi sou

$total_emails = count&#40;$emails&#41;;
$offset = 0;
while &#40;$offset < $total_emails&#41; &#123;
	$output = array_slice&#40;$emails, $offset, $emails_per_group&#41;;
	$email_groups&#91;&#93; = implode&#40;", ", $output&#41;;
	$offset = $offset + $emails_per_group;
&#125;
$total_groups = count&#40;$email_groups&#41;;

foreach&#40;$email_groups as $key => $email_addresses&#41;&#123;
	// edw steile to mail sou ana group prosthetotas sta headers "Bcc&#58; " . $email_addresses . "\r\n";
&#125;
Μπορείς και σε κάθε group να κάνεις και ένα sleep() για μερικά δευτερόλεπτα, να αποφύγεις το cron που λέει ο mrpc, αλλά θα καθυστερεί πολύ γενικά το script ...

txc
Δημοσιεύσεις: 627
Εγγραφή: 02 Δεκ 2003 23:08

Πρόβλημα στην αποστολή newsletter

Δημοσίευση από txc » 20 Μαρ 2011 23:00

Το φτιαξα έτσι :

Κώδικας: Επιλογή όλων

$headers = "MIME-Version&#58; 1.0" . "\r\n";
 $headers .= "Content-type&#58;text/html;charset=iso-8859-7" . "\r\n";
 
 $headers .= 'From&#58; <info@info.gr>' . "\r\n";
 $headers .= 'Bcc&#58; $email_addresses' . "\r\n";
 
 $subject = $_POST&#91;'subject'&#93;;
  
  $s = stripslashes&#40; $_POST&#91;'FCKeditor1'&#93; &#41; ;


$emails_per_group = 1; // posa mails tha exei kathe group
$email_groups = array&#40;&#41;; // ta email se group sti morfi "foo@bar.com;foo@bar.com"
$emails = array&#40;&#41;; // ola ta email pou tha traviksei apo tin vasi

// edw gemise to $emails array me ena select apo ti vasi sou
$emails =mysql_query&#40;"SELECT newslettername2 FROM newsletter2"&#41;;

$total_emails = count&#40;$emails&#41;;
$offset = 0;
while &#40;$offset < $total_emails&#41; &#123;
   $output = array_slice&#40;$emails, $offset, $emails_per_group&#41;;
   $email_groups&#91;&#93; = implode&#40;", ", $output&#41;;
   $offset = $offset + $emails_per_group;
&#125;
$total_groups = count&#40;$email_groups&#41;;

foreach&#40;$email_groups as $key => $email_addresses&#41;&#123;
   // edw steile to mail sou ana group prosthetotas sta headers "Bcc&#58; " . $email_addresses . "\r\n";
    mail&#40;$emails,$subject,$s,$headers&#41;;
	sleep&#40;100&#41;;
&#125; 
echo "Send mail ok";

Κώδικας: Επιλογή όλων

και πέρνω τα παρακάτω warning &#58;

Warning&#58; array_slice&#40;&#41; expects parameter 1 to be array

Warning&#58; implode&#40;&#41; &#91;function.implode&#93;&#58; Invalid arguments passed i

Warning&#58; mail&#40;&#41; expects parameter 1 to be string

Άβαταρ μέλους
greekbytes
WebDev Moderator
Δημοσιεύσεις: 2438
Εγγραφή: 15 Νοέμ 2002 15:42
Τοποθεσία: Αθήνα
Επικοινωνία:

Πρόβλημα στην αποστολή newsletter

Δημοσίευση από greekbytes » 21 Μαρ 2011 00:11

Εδώ είναι το πρόβλημα:

Κώδικας: Επιλογή όλων

$emails =mysql_query&#40;"SELECT newslettername2 FROM newsletter2"&#41;; 
Δεν περνάς στο array τα email... Κάντο κάπως έτσι:

Κώδικας: Επιλογή όλων

$emails_query = mysql_query&#40;"SELECT newslettername2 FROM newsletter2"&#41;;
while &#40;$row = mysql_fetch_assoc&#40;$emails_query&#41;&#41; &#123;
    $emails&#91;&#93; = $row&#91;'newslettername2'&#93;;
&#125;

txc
Δημοσιεύσεις: 627
Εγγραφή: 02 Δεκ 2003 23:08

Πρόβλημα στην αποστολή newsletter

Δημοσίευση από txc » 21 Μαρ 2011 23:02

Χαίρετε, νομίζω ότι τώρα είμαι οκ, έκανα το τεστ και πηγαίνει κανονικά!
Βάζω και την τελική μορφή μήπως το χρειαστεί και κάποιος άλλος, Ευχαριστώ για τη βοήθεια

Κώδικας: Επιλογή όλων

$headers = "MIME-Version&#58; 1.0" . "\r\n";
 $headers .= "Content-type&#58;text/html;charset=iso-8859-7" . "\r\n";
 
 $headers .= 'From&#58; <info@info.gr>' . "\r\n";
 $headers .= 'Bcc&#58; $email_addresses' . "\r\n";
 
 $subject = $_POST&#91;'subject'&#93;;
  $s = stripslashes&#40; $_POST&#91;'FCKeditor1'&#93; &#41; ;

$emails_per_group = 2; // posa mails tha exei kathe group
$email_groups = array&#40;&#41;; // ta email se group sti morfi "foo@bar.com;foo@bar.com"
$emails = array&#40;&#41;; // ola ta email pou tha traviksei apo tin vasi

// edw gemise to $emails array me ena select apo ti vasi sou
//$emails =mysql_query&#40;"SELECT newslettername2 FROM newsletter2"&#41;;
$emails_query = mysql_query&#40;"SELECT newslettername2 FROM newsletter2"&#41;;
while &#40;$row = mysql_fetch_assoc&#40;$emails_query&#41;&#41; &#123;
    $emails&#91;&#93; = $row&#91;'newslettername2'&#93;;
&#125;

$total_emails = count&#40;$emails&#41;;
$offset = 0;
while &#40;$offset < $total_emails&#41; &#123;
   $output = array_slice&#40;$emails, $offset, $emails_per_group&#41;;
   $email_groups&#91;&#93; = implode&#40;", ", $output&#41;;
   $offset = $offset + $emails_per_group;
&#125;
$total_groups = count&#40;$email_groups&#41;;

foreach&#40;$email_groups as $key => $email_addresses&#41;&#123;
   // edw steile to mail sou ana group prosthetotas sta headers "Bcc&#58; " . $email_addresses . "\r\n";
    mail&#40;$email_addresses,$subject,$s,$headers&#41;;
	sleep&#40;10&#41;;
&#125; 
echo "Send mail ok";

Άβαταρ μέλους
jpk
Δημοσιεύσεις: 441
Εγγραφή: 09 Μαρ 2011 21:17

Πρόβλημα στην αποστολή newsletter

Δημοσίευση από jpk » 24 Μαρ 2011 03:37

Το πρόβλημα με αυτό που έχει γράψει είναι ότι θα το στείλει κατευθείαν στο «ανεπιθύμητα» και ούτε που θα το δει ο παραλήπτης. Θα συμφωνήσω (και όμως...) με τον mtpc προσθέτοντας ότι ο πιο ασφαλής τρόπος είναι να τα στέλνεις μέσω ssl (πρέπει να έχεις ανοιχτή το port από τον server (συνήθως 465) ) και αφού έχεις ορίσει SPF record στο DNS Zone. Στην περίπτωση που δεν τα κατέχεις αυτά φάε λίγο χρόνο (το πολύ δυο μέρες δοκιμές είναι) για να τα μάθεις, αξίζει και όπως και να το κάνεις θα τα βρεις μπροστά σου.

txc
Δημοσιεύσεις: 627
Εγγραφή: 02 Δεκ 2003 23:08

Πρόβλημα στην αποστολή newsletter

Δημοσίευση από txc » 28 Μαρ 2014 08:35

να αναβιώσω ένα παλιό θέμα,περίπου για πόσα emails μπορώ να χρησιμοποιήσω τη mail?

θέλω να το χρησιμοποιήσω για αποστολή και εικόνας μέσα στο κείμενο μέσω του παραπάνω κώδικα που είχαμε φτιάξει για περίπου 2000 emails

Απάντηση

Επιστροφή στο “PHP Προγραμματισμός”

Μέλη σε σύνδεση

Μέλη σε αυτήν τη Δ. Συζήτηση: Δεν υπάρχουν εγγεγραμμένα μέλη και 0 επισκέπτες