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');
Mercury sähköpostipalvelin
PHPMailerilla voit lisäillä BCC-vastaanottajia, mutta silloinkaan et voi olla varma osoitteiden piiloutumisesta.
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"); } ?>
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
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
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)?
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')))
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'));
.
Aihe on jo aika vanha, joten et voi enää vastata siihen.