ugrás a tartalomhoz

PHP csoportos HTML email kuldes

richie85 · 2011. Jan. 22. (Szo), 18.49
Sziasztok,
Nagy az en gondom! A hajamat tudnam mar tepni, hogy nem jon ossze amit szeretnek, es nem talalom a megoldast sehol, mert csak kezdo hobbi php-s vagyok. Szoval, szeretnek el kuldeni egy klikkre tobb email cimre ugyanazt a html tartalmu email levelet (newsletters).

A mysql megfelelo adattablajabol kiolvasom az email cimeket, amikhez checkboxokat tarsitok: ime:
<?
include("connect.php");
$sql = "SELECT * FROM probalista";
$eredmeny = mysql_query($sql);
?>
<form method=post action="form2.php"> 
<table border='0' cellspacing='0' style='border-collapse: collapse' width='400' >
<?
while ($sor = mysql_fetch_array($eredmeny)) {
?>
<tr> 
<td width="200"><input type=checkbox name=box[] value='<?= $sor["email"]?>'>&nbsp;&nbsp;&nbsp;<?= $sor["firstname"]?></td> 
<td width="100" align="left">&nbsp;<?= $sor["email"]?></td> 
</tr> 
<?}?>
<td colspan=2 align="left"><input type=submit value=Select></td>
</tr> </table>
</form>
mysql_close($kapcsolat);
?>
ezutan a form2.php-val kiprintelem, a kivalasztott email cimeket:
<?
$box=$_POST['box'];
?>
<table border='0' cellspacing='0' style='border-collapse: collapse' width='400' >

<?
while (list ($key,$val) = @each ($box)) { 

echo '<tr>
<td align="left">' . $val .'</td>
</tr>';

} 
?>
</table>
?>
Innentol kezdve megallt a tudomanyom!! Egyszeruen a mail fuggveny abszolute nem tudja kezelni, kiolvasni, vagy akarmit is csinalni
$val
. Kiprobaltam, hogy sima e-mail cimet irok be a mail fuggvenybe, hogy el megy e a level. Es elment. Kiprobaltam a netrol lemasolt csomo php script-et, mind mukodik, ha 1 db email cimrol van szo.. !! De egyszeruen nem tudom, hogy kuldhetnem el mindenkinek, aki ki lett valasztva?!

Ebben kerem valaki(k) segitseget, mert ki vagyok akadva, hogy ennyire nem akar ez nekem osszejonni!!

A segitseget elore is koszonom! Udv.: Richie
 
1

weblabor

ironwill · 2011. Jan. 22. (Szo), 19.18
weblabor

(sajnos nem sok minden értelmezhető a kódodból - pont a mail küldési részt nem találom.. ?! o.O)
2

Szia.. Pont ez a lenyeg

richie85 · 2011. Jan. 22. (Szo), 19.41
Szia, koszi a leveled!
Azt pont nem irtam be, mert annyi script-et probaltam mar, hogy nem tudom, hogy melyiket kuldjem be.

De kuldok neked most egyet peldanak:
<?php
$subject = 'Test HTML email'; 
$random_hash = md5(date('r', time())); 
$headers = "From: webmaster##kukac##example.com\r\nReply-To: webmaster##kukac##example.com";
$headers .= "\r\nContent-Type: multipart/alternative; boundary=\"PHP-alt-".$random_hash."\""; 
ob_start(); 
?>
--PHP-alt-<?php echo $random_hash; ?>  
Content-Type: text/plain; charset="iso-8859-1" 
Content-Transfer-Encoding: 7bit

Hello Everybody!!! 
This is simple text email message. 

--PHP-alt-<?php echo $random_hash; ?>  
Content-Type: text/html; charset="iso-8859-1" 
Content-Transfer-Encoding: 7bit

<h2>Hello Everybody!</h2>
<p>This is something with <b>HTML</b> formatting.</p> 

--PHP-alt-<?php echo $random_hash; ?>--
<?
$message = ob_get_clean();
$mail_sent = @mail( $val, $subject, $message, $headers );
echo $mail_sent ? "Mail sent" : "Mail failed";
?>
3

Kíváncsi voltam, hogy milyen kóddal próbálkozol.

ironwill · 2011. Jan. 23. (V), 00.10
Levél küldéshez praktikusabb valami kész megoldást választani (ezért küldtem a linkeket), de ha ragaszkodsz a saját megoldáshoz..

ez az alap

Mivel hírlevelet akarsz küldeni ezért nem mondom, hogy egy string láncba fűzd össze a címzettek listáját, mert nekik nem szabad egymásról tudni, ezért egy megoldás marad: ha mindenki egyenként kap levelet.

Ezt hogyan?
<?php
$headers  = 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-type: text/html; charset=utf-8' . "\r\n";
$headers .= 'From: Eberalom <richie85##kukac##example.com>' . "\r\n";
$subject = 'the subject';
$message = 'hello';

//query-sql
while ($row = ... ) {
    $to = $row["email"];
    mail($to, $subject, $message, $headers);
}
?>
Ez nem épp a legjobb megoldás.. Sok szolgáltató nem szereti a hírlevél küldést és ezért erősen korlátozza: pl. a küldhető levelek havi/heti mennyiségét, illetve maximalizálja az egy időpontban egyszerre kiküldhető levelek számát.

Ezért ezeknek mindenképp érdemes utánna kérdezni a szolgáltatónál, hogy ne legyen belőlük váratlan meglepetés.
4

Hello

richie85 · 2011. Jan. 24. (H), 18.25
Nagyon szepen koszonom a segitseged! Ezzel mukodik az email kuldes.
Most mar csak egy kerdesem van:

Hogy lehet kivedeni, hogy az elkuldott emailek, ne a SPAM folder-le landoljanak, mert sajnos oda erkezik a zome :(

Thanks: Richie
5

Hát.. az attól is függ, hogy

ironwill · 2011. Jan. 24. (H), 21.03
Hát.. az attól is függ, hogy milyen címről küldöd. (ki szerepel feladóként)
7

Szia

richie85 · 2011. Jan. 24. (H), 22.41
Szia, ez erkezik meg pontosan pl a gmail-be:
feladó:	Beauty Spot Newsletter <info##kukac##londonbeautyspot.co.uk>
címzett:rich.ritter##kukac##gmail.com (Igen, ez Ön.) További információ
dátum:	2011. január 24. 14:08
tárgy:	Newsletter from London Beauty Spot
küldő:	yourhostingaccount.com
A www.fatcow.com a host, es a www.londonbeautyspot.co.uk accountrol megy/ment. Es nem is igazan ertem mi ez a "kuldo: yourhosting.com"

Udv.: Richie
6

Írtam róla

janoszen · 2011. Jan. 24. (H), 21.15
8

Hello

richie85 · 2011. Jan. 24. (H), 22.46
I have a look..! Meglesem! Richie