webForumDet fria alternativet

Skicka epost med vanligt text och html-kod

2 svar · 390 visningar · startad av sailsoft

sailsoftMedlem sedan juli 2001225 inlägg
#1

Jag har försökt skapa ett skript för att skicka ett e-postmeddelande med mail() som tar med både vanlig text och html-kod i body. Undrar om någon har färdig kod för detta.

Vet inte riktigt hur jag skall "slå ihop" den vanliga texten och html-koden i body, hur ska man särskilja dom?

nkrantzMedlem sedan apr. 2002830 inlägg
#2

Det här är en del av en klass som jag använder för att skicka ut HTML mail.

function send($commaSeparatedToList, $from, $subject, $alternativeText, $htmlLink)
	{
		// function for get the HTML page.
		$handle = fopen($htmlLink, "r");
		while (!feof($handle))
		{
			$HTMLpart .= fgets($handle, 1024);
		}
		print_r($commaSeparatedToList);
		// Gets all recipients and put them into an array. Don't forget to trim later on..
		$recipients = explode ( ",", $commaSeparatedToList);

		// Gets the subject and converts it to MIME
		$subject = $subject;
		
		// Set some headers
		$headers = "From: " . $from . "\r\n";
		$headers .= "MIME-Version: 1.0\r\n";
		$headers .= "Content-Type: multipart/alternative;
			boundary=\"=_3630a29c32d555292a26fdae8b0df6d7\"\r\n";

		// the message is multipart. 
		$message = '
--=_3630a29c32d555292a26fdae8b0df6d7
Content-Type: text/plain; charset="ISO-8859-1"
Content-Transfer-Encoding: 7bit

' . $this->mimeEncode($alternativeText) . '
--=_3630a29c32d555292a26fdae8b0df6d7
Content-Type: text/html; charset="ISO-8859-1"
Content-Transfer-Encoding: quoted-printable

' . $this->mimeEncode($HTMLpart) . '

--=_3630a29c32d555292a26fdae8b0df6d7--

		';

		for ($i=0; $i<count($recipients); $i++)
		{
			mail(trim($recipients[$i]), $subject, $message, $headers);
		
		}
		
		return 1;
	}
	
	function mimeEncode($msg)
	{
		$msg= str_replace("=","=3D",$msg);
		$msg= str_replace("Å","=C5",$msg);
		$msg= str_replace("å","=E5",$msg);
		$msg= str_replace("Ä","=C4",$msg);
		$msg= str_replace("ä","=E4",$msg);
		$msg= str_replace("ö","=F6",$msg);
		$msg= str_replace("Ö","=C6",$msg);
		
		return $msg;
	}

Koden är nog inte väldigt optimerad, men den funkar för mig.

// Nippe

nkrantzMedlem sedan apr. 2002830 inlägg
#3

Ja just det, istället för att skriva in HTML-koden när jag skickar så säger jag åt scriptet att hämta en hemsida och lägga in denna - Så kan man sedan hänvisa de som inte kan se HTML till hemsidan...

// Nippe

127 ms totalt · 3 externa anrop · v20260731065814-full.fb544a5a
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
124 ms — hämta tråd, inlägg och bilagor (db)