Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: php mail vastaanottajien piilotus

Sivun loppuun

peg [25.01.2010 18:30:48]

#

Hei !
Eli miiten php mail funktiolla voi piilottaa vastaanottajat?

edit: eli tämä.

$to = file_get_contents('../postituslista/mail.txt');
mail($to,$subject,$viesti, 'From: mytest@example.com');

peg [25.01.2010 18:54:41]

#

Mercury sähköpostipalvelin

tsuriga [25.01.2010 18:59:08]

#

PHPMailerilla voit lisäillä BCC-vastaanottajia, mutta silloinkaan et voi olla varma osoitteiden piiloutumisesta.

Macro [25.01.2010 19:07:46]

#

Mitä jos lähettäisit viestit silmukassa jokaiselle erikseen?

<?php
$osoitteet = explode("\r\n", file_get_contents("osoitteet.txt"));
for($i = 0; $i < sizeof($osoitteet); $i++) {
	mail($osoitteet[$i], "Otsikko", "Viesti", "From: me@frommymail.com");
}
?>

peg [25.01.2010 19:29:08]

#

Ratkaisu löytyi, https://www.php.net/manual/en/function.mail.php
kohta 4. Example #4 Sending HTML email
Ensi silmäyksellä se ei vain osunut silmään.

HEADERS

peg [26.01.2010 09:49:22]

#

Uusi ongelma. Jos laittaa kenttään

tämä toimii:
$headers .= 'Bcc: birthdaycheck@example.com, joku@osoite.fi' . "\r\n";

Tämä ei toimi:
$vast = file_get_contents('../postituslista/mail.txt');
$headers .= 'Bcc: ' . $vast . "\r\n";

mail.txt sisältö:
birthdaycheck@example.com,
joku@osoite.fi,

????????? apua

tsuriga [26.01.2010 10:01:13]

#

Voisit harrastaa hieman debuggausta: miltä näyttää echo $headers; (ja jos testaat webbisivulla, rivinvaihdot eivät näy renderöidyllä sivulla, siispä tarkastele lähdekoodia)?

peg [26.01.2010 10:03:37]

#

headers tulostaa:
MIME-Version: 1.0Content-type: text/html; charset=iso-8859-1 From: talli Bcc: birthdaycheck@example.com, joku@osoite.fi,

EDIT: lähdekoodissa näkyy osoitteet eri riveillä. Mikä korjaus?

EDIT2: tässä tällainen korjaus. huhhuh.
$vast = implode(explode("\r\n", file_get_contents('../postituslista/mail.txt')));

tsuriga [26.01.2010 10:28:22]

#

Universaalimpi tapa on lukea tiedosto file-funktiolla antaen sille toisena parametrina vakion FILE_IGNORE_NEW_LINES (kiitokset taas PHP:n epäloogisuudelle ["newlines" vs. "new lines"]). Toimii aina riippumatta käytetyistä rivinvaihtomerkeistä. Toinen tapa on korvata str_replace-funktiolla kaikki \r- ja \n-esiintymät tyhjällä. Toimii useimmissa järjestelmissä. Kolmas tapa on jättää rivinvaihdot pois mail.txt-tiedostosta, jolloin syötettä ei tarvitse käsitellä aina uudestaan ja uudestaan. Toimii aina.

Jos päädytään käsittelemään rivinvaihdoilla erotettua syötettä, helpoin on ehkä $recipients = str_replace(array("\r", "\n"), ',', file_get_contents('../postituslista/mail.txt'));.


Sivun alkuun

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta