Php-levélküldés

Php-levélküldés
2006-07-04T21:48:56+02:00
2006-07-06T14:24:24+02:00
2022-10-31T12:42:16+01:00
Kay
Sziasztok!
Nekem van egy emailküldő php-m. Kiolvassa egy email címeket tartalmazó txt-ből a címeket(amelyek külön sorban vannak), és elküldi rá az üziket. A probléma csak annyi, hogy ez nem működik. Segítsetek légyszíves, eklőre is köszönöm.Amúgy itt a php-m:
<?php
$tomb = file("email.txt");
$szaml = count($tomb);
for ($i=1;$i>=$szaml;$i++) {
mail("$tomb[$i]", "Próba", "Ez egy emailküldő php!");
}
?>
Bocsi véletlenül pascalt jelőltem :D:D
De a téma címéből kiderül, hogy ez php :D:D
Mutasd a teljes hozzászólást!
Induljunk ki onnan, hogy a tömbödben tényleg benne vannak a txt-ből kiolvasott email címek.
Amit egy print_r($tomb); parancsal meg is tudsz nézni.

<?php $tomb = file("email.txt"); $szaml = count($tomb); for ($i=0;$i<$szaml;$i++) { $aktualis_email=$tomb[$i]; mail($aktualis_email, "Próba", "Ez egy emailküldő php!"); } ?>
De vannak olyan szerverek amelyek csak a négy részre tagolt mail()-t küldik el.


Az meg valahogy így nézne ki:

mail($aktualis_email, "Próba", "Ez egy emailküldő php!","From: Honlapom<honlapom@honlapom.hu>\n\r"); ?>
Mutasd a teljes hozzászólást!

  • Így elsőre:

    for ($i=0;$i<$szaml;$i++) {
    mail($tomb[$i], "Próba", "Ez egy emailküldő php!");
    }
    Mutasd a teljes hozzászólást!
  • Induljunk ki onnan, hogy a tömbödben tényleg benne vannak a txt-ből kiolvasott email címek.
    Amit egy print_r($tomb); parancsal meg is tudsz nézni.

    <?php $tomb = file("email.txt"); $szaml = count($tomb); for ($i=0;$i<$szaml;$i++) { $aktualis_email=$tomb[$i]; mail($aktualis_email, "Próba", "Ez egy emailküldő php!"); } ?>
    De vannak olyan szerverek amelyek csak a négy részre tagolt mail()-t küldik el.


    Az meg valahogy így nézne ki:

    mail($aktualis_email, "Próba", "Ez egy emailküldő php!","From: Honlapom<honlapom@honlapom.hu>\n\r"); ?>
    Mutasd a teljes hozzászólást!
  • szia,

    A $tomb[$i] tartalmazza a mailcímek txt-fájl egy sorát. Azaz a sorvége-újsort is (CRLF), amit mailcímbe nem szokás betenni.
    Próbáld így a kód megfelelő helyein:
    trim($tomb[$i])
    Üdv.
    Mutasd a teljes hozzászólást!
  • Ezért rühellem a txt-s tárolásokat. Ilyen gond nincs ha az ember adatbázisban tárolja a dolgait.

    De igazad van, tényleg trim(); elni kellene. Más a kiírás is.
    Mutasd a teljes hozzászólást!
  • Köszönöm Mezofi!
    Annyi volt csak a probléma, hogy a mail függvényhez nem a tömböt írtam, hanem úgy csináltam ahogy te, tehát külön váltóban eltároltam a tömb aktuális értéket és azt írtam a függvényhez! Mégegyszer köszönömjár a pont, megdolgoztál érte!!!
    Mutasd a teljes hozzászólást!
  • Nem igaz, hogy az volt a hiba.

    Onnan indult a hibád, hogy a ciklusod
    $szaml = count($tomb);
    for ($i=1;$i>=$szaml;$i++) {

    Totál rossz volt.
    Az első elemet kihagytad.
    Ha legalább 2 elem volt a tömbben, akkor induláskor:
    $i=1 és megvizsgálod, hogy $i (ami 1) nagyobb vagy egyenlő-e 2, ami persze nem igaz, tehát be se megy a ciklusba.

    Az enyémet kipróbáltad, vagy rögtön a full kóddal kezdted? Mert az enyém is simán küldi a leveleket.

    Ennek:
    $aktualis_email=$tomb[$i];
    semmi köze a hibádhoz.

    Ráadásul teljesen felesleges a
    mail("$tomb[$i]",...
    részben az idézőjel.
    Mutasd a teljes hozzászólást!
  • Figyelj Micu!!!!!
    Képzeld arra rájöttem magamtól is, hogy a ciklust 0-tól kell indítani. Azt meg már légyszi ne te mond meg nekem, hogy mi volt a hiba a programomban!!! A te php-det egyébként nem néztem meg!! Az pedig a z én privilégiumom, hogy kinek a megoldását fogadom el!!! Mezofi hozzászólásának a segítségével javítottam ki a php-m. Úgyhogy kösz a hozzászólást ,de legközelebb ne kötözködj!!! Előre is köx!Bye
    Mutasd a teljes hozzászólást!
  • Szerintem egy kicsit rosszul fogtad fel a dolgokat. Valaki (
    aki a Prog.Hu-n eddig összesen 130.680 tapasztalati pontot szerzett
    ) segített neked (
    Én a kezdő programozó vagyok, aki tele van kérdésekkel :)))
    ), akkor legalább próbáld meg elolvasni a válaszát, mert nagyon valószínű, hogy vannak benne jó ötletek.

    Egyébként úgy szokás, hogy a hozzászólások sorrendjében nézed végig a megoldásokat. És így fogadod el. Bár néha ennek a lustaság szab határt.

    Doiti
    Mutasd a teljes hozzászólást!
  • Egy apro segitseg... Txt helyett hasznalj CSV-t, ezzel megszunnek a sorvegi problemait. Beolvasod a tartalmat, amit berak egy tombbe, es mivel egy adatod van soronkent, igy konnyu is ra hivatkozni. Ha pedig a mail() fv.-t hasznalod, mindig adj at parameterkent egy rendezett "header"-t is.

    $data = fgetcsv($fp, 9999, ";");
    Ekkor a $data[0] lesz a sorban levo E-Mail cimed.

    Udv
    Zsolt
    Mutasd a teljes hozzászólást!
  • Hát igen.

    Beküldtél egy kódot, hogy mi a hibád.

    Kijavítottam az összes hibádat.
    (Rájöttél, vagy nem, de ott volt a javítás)
    Ezután elfogadtál egy olyan kódot, ami lassabb, hosszabb mint az enyém. (De legalább nem kellett gondolkodnod rajta, mert teljes forráskód volt, nem csak a hiba javítása)

    "A te php-det egyébként nem néztem meg!! "

    Hát igen. Ez látszott, mert akkor nem egy rosszabbat fogadtál volna el.

    "Azt meg már légyszi ne te mond meg nekem, hogy mi volt a hiba a programomban!!! "


    Ja, bocsi, akkor tévedésbe vagyok. Azt hittem, hogy azért kérdezed, mert nem tudod. De ha olyan okos vagy, hogy tudod mi a hibád, akkor meg miért kérdezel.
    Legalább is logikusan gondolkodó emberek a prog.hu-n azért szoktak kérdezni, mert nem tudnak valamit.
    De hát....

    Egyébként nem csak a 0 kezdet volt a hibád, hanem még a vizsgálatod iránya is.
    (Az idézőjelbe tett tömb meg csak hab a tortán)

    "Az pedig a z én privilégiumom, hogy kinek a megoldását fogadom el!!!"

    Tudod, ez így nem egészen igaz egy olyan helyen, ahol vannak írott és iratlan szabályok.
    A prog.hu elveivel is ütközik, hogy nem az első jó megoldást fogadjuk el, hanem egy 1 órával későbbit.

    "Mezofi hozzászólásának a segítségével javítottam ki a php-m"

    Gondolom a szakértő "Copy/Paste" módszerrel
    Mutasd a teljes hozzászólást!
  • Micu!!
    Látom nagyon ügyes vagy, hogy a válaszomat részekre szeded, és leírod a véleményed!! Mezofi hozzászólására ránéztem, és mint már mondtam az alapján javítottam ki az php-m. A te megoldásod azért nem jó mert nem csak a for ciklussal volt a hiba, értsd már meg, hogy ha a mail függvényhez írtam azt, hogy $tomb[$i] akkor nem volt jó!! Az pedig, hogy mennyi pontod van nagyon dícséretes dolog és én nem akartalak megbántani, ha még is sikerült azért elnézést kérek. Én php-ben még nagyon kezdő vagyok, és nem azért regisztráltam itt, hogy fikázzak embereket. Mégegyszer elnézést kérek elsősorban tőled, de mindenkitől akit megbántottam. Nagyon jó közösség ez, és hidd el én is tudom, hogy milyen jó dolog másokon segíteni. Köszönöm mégegyszer mindenkinek a hozzászólását és a segítőkézségét. Mivel úgy vélem, hogy Micut megbántottam ,ezért bocsánatot kérek tőle. Ne haragudj. Köszönöm a megértésed, további ilyen példás segítőkézséget kívánok. Bye
    Mutasd a teljes hozzászólást!
  • Na jó, nincs semmi baj borítsunk fátylat rá.

    Csak logikai kérdés.
    Idézőjel nélkül is próbáltad a tömböt?
    mail($tomb[$i], "Próba", "Ez egy emailküldő php!");
    Mert így nekem működött.
    Mutasd a teljes hozzászólást!
  • Igazad van, így is működik. Mégegyszer ne haragudj, és köszönöm a hozzászólásokat. bye
    Mutasd a teljes hozzászólást!
  • Még egyszer semmi baj.

    (Csak azért voltam dühös, mert ott volt egy jobb, rövidebb, gyorsabb és korábbi megoldás, és nem az lett elfogadva)

    De felejtsük el
    Mutasd a teljes hozzászólást!
Tetszett amit olvastál? Szeretnél a jövőben is értesülni a hasonló érdekességekről?
abcd