Στέλνοντας πολλαπλά email με τη function mail()

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

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

Απάντηση
valsamo
Δημοσιεύσεις: 17
Εγγραφή: 29 Ιουν 2005 13:28

Στέλνοντας πολλαπλά email με τη function mail()

Δημοσίευση από valsamo » 29 Ιουν 2005 14:08

Χαιρετώ την ελληνική κοινότητα της PHP..
Θα ήθελα να κάνω μία ερώτηση:
Έχω ένα site στο οποίο μπορούν οι επισκέπτες να δίνουν το email τους και αυτό να καταχωρείται σε μία βάση δεδομένων που έχω δημιουργήσει.
Μπορώ μέσω της function mail() να στείλω ένα email στον καθένα από αυτούς(με ένα for), κάτι σαν newsletter.. ή θα με κόψει ο mailserver σαν spammer. Αυτό το λέω γιατί οι εγγεγραμμένοι χρήστες υπερβαίνουν τους 500..
Το script που έχω φτιάξει είναι το εξής:

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

<?
function html_mail&#40;$to, $from, $subject, $html&#41;
&#123;
	$headers = "MIME-Version&#58; 1.0\r\n";
	$headers .= "Content-type&#58; text/html; charset=iso-8859-7\r\n"; 
	$headers .= "From&#58; $from <$from>\r\n";
	$headers .= "X-Sender&#58; <$from>\r\n";
	$headers .= "X-Priority&#58; 3\r\n"; 
	$headers .= "X-MimeOLE-Priority&#58; Medium\r\n";
	$headers .= "X-Mailer&#58; PHP4\r\n"; 
	$headers .= "Reply-to&#58; <$from>\r\n";
	$headers .= "Return-Path&#58; <$from>";


	$ok=mail&#40;$to, $subject, $html, $headers&#41;;

	return $ok;
&#125;

for&#40;$k=0;$k < mysql_num_rows&#40;$result_users&#41;;$k++&#41;
	&#123;						
		$row_user=mysql_fetch_array&#40;$result_users&#41;;
		$to=stripslashes&#40;$row_user&#91;'mail_name'&#93;&#41;;
		//$mail_id=$row_user&#91;'mail_id'&#93;;
		
		echo 'sending to '.$to.' !!<br>';
		if&#40;!html_mail&#40;$to, $from, $subject, $message&#41;&#41;
		&#123;
			echo "No mail send!! to $to";
			flush&#40;&#41;;
			sleep&#40;1&#41;;
			//exit&#40;&#41;;
		&#125;
		flush&#40;&#41;;
		set_time_limit&#40;30&#41;;
		sleep&#40;2&#41;;
	&#125;//end for&#40;$k=0;$k<mysql_num_rows&#40;$result_users&#41;;$k++&#41;  
?>

Άβαταρ μέλους
Rapid-eraser
WebDev Moderator
Δημοσιεύσεις: 6851
Εγγραφή: 05 Απρ 2003 17:50
Τοποθεσία: Πειραιάς
Επικοινωνία:

Στέλνοντας πολλαπλά email με τη function mail()

Δημοσίευση από Rapid-eraser » 29 Ιουν 2005 14:42

vai mporeis ... eivai ka8ara 8ema email
kai tou ti akribos 8es va kaveis dld

boreis va stileis cc (carboncopy) n bcc (blank carbon copy)
n memovomeva email.

se ka8e periptosi n sivtaksi 8a prepei va eivai tis morfis

"email , email , email"

simboulepsou to manual gia tnv sivtaksi tou kai pos topo8eteis headers sto email .

dev xriazete epomevos va kaleis polles fores tnv mail gia va stileis se polous paraliptes. mia fora arkei gia va stileis osa email 8es arki va ksereis ti 8es va kaveis.

episimavo

TO: poles fores to idio email (mia fora gia tov ka8eva)
CC: mia fora to idio mail ( avalambavei to MTA tnv paradosi stov ka8eva ksexorista )
BCC: to idio me to apopavo apla dev blepouve oi diakriti paraliptes tous ipolipous metaksi tous


Fisika ka8os sivtaseis eva tetoio email mporeis va kaveis diaforous sivdiasmous twv triov header pou sou eipa pio pavo
Cu, Rapid-eraser, Tα αγαθά copies κτώνται.
Love is like oxygen, You get too much you get too high
Not enough and you're gonna die, Love gets you high

valsamo
Δημοσιεύσεις: 17
Εγγραφή: 29 Ιουν 2005 13:28

Στέλνοντας πολλαπλά email με τη function mail()

Δημοσίευση από valsamo » 29 Ιουν 2005 14:57

Αυτό που θέλω είναι να στέλνω κάτι σαν newsletter, δηλ. το ίδιο μήνυμα σε όλους τους χρήστες χωρίς να φαίνεται στο "to:" του καθένα οι διευθύνσεις των άλλων.
Εσύ ποιον τρόπο μου προτείνεις? Με το "for" φοβάμαι μη με κόψει o mailserver σαν spammer.. μπορεί να γίνει κάτι τέτοιο?

Άβαταρ μέλους
Rapid-eraser
WebDev Moderator
Δημοσιεύσεις: 6851
Εγγραφή: 05 Απρ 2003 17:50
Τοποθεσία: Πειραιάς
Επικοινωνία:

Στέλνοντας πολλαπλά email με τη function mail()

Δημοσίευση από Rapid-eraser » 29 Ιουν 2005 15:01

BCC tote 8a xrisimopoiiseis

8a stelveis eva email meso tis mail()

to for 8a to xrisimopiiseis avagkastika gia va ftiakseis tnv metabliti pou 8a periexei ola sou ta onomata .

px mporeis va to spaseis kai se perisotera komatia ama8es isos px va kaleseis 2 n treis fores to mail function omadopiovtas tis epafes sou ava 100 - 150 email
av kai dev 8a exei megali diafora gia tov MTA sou o opoios 8a epeksegastei me megali xara to BCC :P

epomevos stiveis to bcc filed tou header sou me to for
dimiourgovtas ta periexomeva se afti tnv morfi

while ( fetch )
$bcc_resipiants .= ", email";


me afti tnv logiki 8a pros8eteis ola sou ta email
kai 8a apoktiseis sto telos mia lista tis morfis
"email , email , email , email .. .. .. .. .. ."

afto tnv lista 8a tnv baleis sto bcc header sou kai 8a stileis eva email me tnv mail()
Cu, Rapid-eraser, Tα αγαθά copies κτώνται.
Love is like oxygen, You get too much you get too high
Not enough and you're gonna die, Love gets you high

valsamo
Δημοσιεύσεις: 17
Εγγραφή: 29 Ιουν 2005 13:28

Στέλνοντας πολλαπλά email με τη function mail()

Δημοσίευση από valsamo » 29 Ιουν 2005 15:32

Sorry που ενοχλώ πάλι, αλλά θέλω να κάνω άλλη μία ερώτηση. Αν το στείλω
με Bcc όπως μου λες, στο header του mail που λαμβάνει ο χρήστης (που το βλέπει με view source) δεν θα φάινεται το Bcc: με όλες τις διευθύνσεις?
Αν ναι δεν είναι και τόσο βολικό, θέλω τη γνώμη σου..
Σ'ευχαριστώ πολύ..

Άβαταρ μέλους
Rapid-eraser
WebDev Moderator
Δημοσιεύσεις: 6851
Εγγραφή: 05 Απρ 2003 17:50
Τοποθεσία: Πειραιάς
Επικοινωνία:

Στέλνοντας πολλαπλά email με τη function mail()

Δημοσίευση από Rapid-eraser » 29 Ιουν 2005 15:58

poses fores 8a to pw :P
bcc eivai black carbon copy
afto simevei pos oi diakritoi paraliptes dev 8a blepouve metaksi tous ta meli tis listas...

try and error eivai n ipo8esi ... dev 8elei kopo 8elei tropo !!!
Cu, Rapid-eraser, Tα αγαθά copies κτώνται.
Love is like oxygen, You get too much you get too high
Not enough and you're gonna die, Love gets you high

valsamo
Δημοσιεύσεις: 17
Εγγραφή: 29 Ιουν 2005 13:28

Στέλνοντας πολλαπλά email με τη function mail()

Δημοσίευση από valsamo » 29 Ιουν 2005 16:25

OK, έκανα ένα δοκιμαστικό με BCC όπως μου είπες και τα αποτελέσματα ήταν απογοητευτικά. Aν δε βάλω "to:" απ'τους 4 mailservers που το έστειλα οι 3 με πιάσαν σαν spammer και ο άλλος δεν το έλαβε το μήνυμα ποτέ κι αυτό γιατί στο "to" είχε undiscloded recepients. Όταν έβαλα ένα "to" τότε με πιάσαν σαν spammer oi 2 απ'τους 4 servers.. To θέμα είναι ότι στο "to" πρέπει να υπάρχει κάθε φορά το mail του παραλήπτη κι όχι αυτό που θα βάλω εγώ μία φορά.
Μάλλον τελικά η λύση με το "for" και πολλαπλά mail είναι καλύτερη, απλά δε ξέρω αν θα έχω πρόβλημα στην περίπτωση που τα mail είναι πάρα πολλά και με κόψει ο mailserver. Ξέρεις αν υπάρχει τέτοια περίπτωση?
Sorry που σε παιδεύω αλλά χρειάζομαι μία σωστή λύση και πιέζομαι χρονικά..

Άβαταρ μέλους
Rapid-eraser
WebDev Moderator
Δημοσιεύσεις: 6851
Εγγραφή: 05 Απρ 2003 17:50
Τοποθεσία: Πειραιάς
Επικοινωνία:

Στέλνοντας πολλαπλά email με τη function mail()

Δημοσίευση από Rapid-eraser » 29 Ιουν 2005 16:34

malov dev bazeis from giafto se briskouve sav spamer

n lisi me to for dev eivai sosti pavtos ... dimiourgies poli load stov server epavalambavovtas sivexeia tnv mail()

kalitera va mazepseis ta resipients se mia metabliti
kai va ta baleis sto to
kai va kaleseis mia fora tnv mail me polaplo periexomevo sto to:
Cu, Rapid-eraser, Tα αγαθά copies κτώνται.
Love is like oxygen, You get too much you get too high
Not enough and you're gonna die, Love gets you high

valsamo
Δημοσιεύσεις: 17
Εγγραφή: 29 Ιουν 2005 13:28

Στέλνοντας πολλαπλά email με τη function mail()

Δημοσίευση από valsamo » 29 Ιουν 2005 17:01

Και from βάζω και subject, δε φταίει αυτό..
Πάντως Thanks για τη βοήθεια και για το χρόνο σου..

Άβαταρ μέλους
ThyClub
Honorary Member
Δημοσιεύσεις: 5312
Εγγραφή: 17 Νοέμ 2003 00:21
Τοποθεσία: Hell's Kitchen
Επικοινωνία:

Στέλνοντας πολλαπλά email με τη function mail()

Δημοσίευση από ThyClub » 29 Ιουν 2005 22:08

rapido 1 ερώτηση κι εγώ.

Αν χρησιμοποιήσεις το bcc υπάρχει κάποιος τρόπος να τσεκάρεις αν η mail λειτούργησε σωστά και αν το mail σου στάλθηκε σε όλους τους παραλήπτες;

Δλδ έχω 10 email acc και θέλω να πώ ενα γειά σε όλους. Πώς μπορώ να τσεκάρω οτι το "Γειά" μου πήγε σε όλους ή μόνο σε 9 ή 8 απο αυτούς;


Δεν ξέρω αν με κατάλαβες :roll:

Άβαταρ μέλους
Rapid-eraser
WebDev Moderator
Δημοσιεύσεις: 6851
Εγγραφή: 05 Απρ 2003 17:50
Τοποθεσία: Πειραιάς
Επικοινωνία:

Στέλνοντας πολλαπλά email με τη function mail()

Δημοσίευση από Rapid-eraser » 29 Ιουν 2005 22:13

dev ksereis ... opos dev ksereis ama stileis eva grama xoris return address :)

O movos tropos va ma8eis av eva email dev eftase eivai va exeis return address sto header (n o server aftoboulos va sto girisei sto from header)
kai stnv ri8misi tou MTA pou 8a paralabei to email
va epistrefei repsonts se periptosi pou givei fail to mail gia opoiodipote logo.
Akoma kai va parado8ei sosta pali dev exeis kapoia evdiksi av eftase to email.
O movos tropos eivai ousiastika va apavtisei o xristis molis aviksei to email (mia tetoia diadikasia exei aftomatopiisei me custom header to outlook px)
Alla kai pali av o allos patisei oxi tote pali dev 8a ksereis tipota.

Afto praktika dev exei va kavei oute me to cc oute me to bcc oute me to to header .... eivai 8ema tou pos ilopiite to protokolo tou email.
Cu, Rapid-eraser, Tα αγαθά copies κτώνται.
Love is like oxygen, You get too much you get too high
Not enough and you're gonna die, Love gets you high

Απάντηση

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

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

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