webForumDet fria alternativet
Logga in / Bli medlem

Anpassade mail

PHP

5 svar · 444 visningar · startad av Qimen

Medlem sedan juni 20015 009 inlägg
Trådstart#1

Hej

Har fastnat rejält nu och vet inte hur jag ska lösa detta. Jag vill loopa 50 mail åt gången för att inte sidan ska göra timeout, inget svårt med det. Mitt problem är dock att jag måste anpassa varje mail nu med.

Har en tabell med en kolumn för e-postadresser samt en för län. Vill att det ska skrivas i ut i varje mail vilket län just den mailadressen har, till en början iaf. Senare när jag fått det att fungera så ska jag hämta mer data beroende på vilket län man har. Men kommer jag så långt att rätt län skrivs ut så fixar jag nog resten.

Först försökte jag med bcc, dvs skicka till 50 stycken med samma mail men då går det ju inte anpassa varje. Men om man plockar ut 50 poster, loopar igenom dem och gör så tills det tar slut?

Kom gärna med förslag, står helt stilla nu. :)

Medlem sedan jan. 2000372 inlägg
#2

Du får göra det i två omgångar, först loopa igenom alla län och sen för varje iteration i den loopen skicka ett mail med BCC till alla som bor i det länet?

Medlem sedan juni 20015 009 inlägg
#3

Mungo skrev:

Du får göra det i två omgångar, först loopa igenom alla län och sen för varje iteration i den loopen skicka ett mail med BCC till alla som bor i det länet?

Jag försökte så först, men fick det inte att fungera (lite mer pulande så hade det nog gått) men trodde det skulle ta för mycket kraft. Så borde gå att göra så utan problem?

/r Kan tillägga att funktionen är tänkt att köras som ett cronjobb (utskick en gång i veckan).

Medlem sedan jan. 2000372 inlägg
#4

Hur många mail handlar det om? Se till att du har tagit bort timeoutfunktionen bara.

Medlem sedan juni 20015 009 inlägg
#5

Löste det nu,
Kanske inte på det smidigaste sättet men det fungerar iaf. Kom gärna med förbättringar, ändringar.

function jobbevakaren_cron($sql_lan)
{
	$count 			= 0;
	$recepient 		= "";

	$sql = "SELECT * FROM je_bevaka WHERE lan = '$sql_lan'";
	$result = mysql_query($sql);

	while ($row = mysql_fetch_array($result)){
		
		$recepient .= ",".$row['epost'];
		$count++;
		
		if ($count == 50){
		
			$recepient = substr($recepient, 1);
			$lan = $this->editlan($sql_lan);
			
			/* Meddelande START */
		
			$headers .= "MIME-Version: 1.0\r \n";				
			$headers .= "From: \"huvud@adress.net\" <huvud@adress.net>\r \n";
			$headers .= "Reply-To: [email]huvud@adress.net[/email]\r \n";
			$headers .= "X-Priority: 3\r \n";
			$headers .= "X-MSMail-Priority: High\r \n";
			$headers .= "X-Mailer: PHP \n";
			$headers .= "X-Sender: <huvud@adress.net>\n"; 
			$headers .= "bcc:" . $recepient . "\n";
										
			$subject = "Jobbevakaren";
			$message .= "Ni bevakar " . $lan . ".\n\n";
						
			mail("huvud@adress.net",$subject,"$message","$headers");
			
			/* Meddelande SLUT */
			
			$count = 0;
			$recepient = "";
			
		}
	}
	
	if ($count > 0){
		
		$recepient = substr($recepient, 1);
		$lan = $this->editlan($sql_lan);
		
		/* Meddelande START */
	
		$headers .= "MIME-Version: 1.0\r \n";				
		$headers .= "From: \"huvud@adress.net\" <huvud@adress.net>\r \n";
		$headers .= "Reply-To: [email]huvud@adress.net[/email]\r \n";
		$headers .= "X-Priority: 3\r \n";
		$headers .= "X-MSMail-Priority: High\r \n";
		$headers .= "X-Mailer: PHP \n";
		$headers .= "X-Sender: <huvud@adress.net>\n"; 
		$headers .= "bcc:" . $recepient . "\n";
									
		$subject = "Jobbevakaren";
		$message .= "Ni bevakar " . $lan . ".\n\n";

					
		mail("huvud@adress.net",$subject,"$message","$headers");
		
		/* Meddelande SLUT */
	}
}
Medlem sedan juni 20015 009 inlägg
#6

Mungo skrev:

Hur många mail handlar det om? Se till att du har tagit bort timeoutfunktionen bara.

Har ingen aning om det just nu. Det kommer användas till en ungdomsportal för unga som söker sommarjobb så jag tror inte det handlar om 100 000+ precis. Kan tänka mig runt 1000.

381 ms totalt · 4 externa anrop · v20260731065814-full.51f67c91
122 ms — deklarationer (db)
121 ms — hämta statistik (db)
128 ms — hämta tråd, inlägg och bilagor (db)
122 ms — ändringar (db)