[PHP] Nep mail() commando

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • bas.kb
  • Registratie: Oktober 2002
  • Laatst online: 04-05 23:35

bas.kb

BI'er :P

Topicstarter
Heej,

Ik ben een testomgeving aan het maken voor een website. In het admingebeuren bestaat de functie om alle bedrijven die in de db staan met 1 klik standaard mailjtes te versturen via het mail() commando van PHP. Ik wil niet dat de testomgeving ècht gaat mailen, maar ik wil geen dikke foutmelding krijgen omdat ik in php.ini de SMTP server niet heb ingesteld. Hoe kan ik het mailcommando toch uitvoeren, zonder dat er gemaild wordt?

Op google of via de search is lastig zoeken omdat de meeste topiques gaan over 'het wel werkend krijgen' van de mailfunctie. Iemand enig idee?

// edit

Alle emailadressen uit de database halen is geen optie, omdat ik met scriptjes wil gaan testen, en das lastig met een database die afwijkt van het origineel.

[ Voor 14% gewijzigd door bas.kb op 13-09-2004 11:18 ]


Acties:
  • 0 Henk 'm!

  • Speedener
  • Registratie: September 2000
  • Laatst online: 18-09 12:54
Even een functie 'mail' schrijven, en in die functie echo je gewoon 'mailtje verstuurd' ?

PHP:
1
2
3
function mail ($var, $var2, var3) {
  echo 'Whoei, mailtje is weg';
}

[ Voor 42% gewijzigd door Speedener op 13-09-2004 11:18 ]

LG Therma V Split WP: HU143MA.U33-HN1636M NK5


Acties:
  • 0 Henk 'm!

  • HielkeJ
  • Registratie: Juli 2001
  • Niet online
Wel mailen en toch weer geen mail versturen kan wel,
maar waarom maak je van de regel niet gewoon @mail().

Dan wordt de foutmelding onderdrukt :)

Acties:
  • 0 Henk 'm!

  • JoeKurr
  • Registratie: Juli 2001
  • Laatst online: 11-06 14:06

JoeKurr

Past niet in een MiG-21

Door een @ voor een statement te zetten onderdruk je foutmeldingen.

Dus met @mail zou je geen foutmeldingen meer moeten krijgen.

Dutch Flanker Display Team
You can't be lost if you don't care where you are


Acties:
  • 0 Henk 'm!

  • bas.kb
  • Registratie: Oktober 2002
  • Laatst online: 04-05 23:35

bas.kb

BI'er :P

Topicstarter
Hmm, ook al aan gedacht, maar vreesde dat ik dan een foutmelding kreeg omdat de functienaam gelijk is aan een gereserveerd commando.
Fatal error: Cannot redeclare mail() in c:\test\script.php on line 4

Das dus niet mogelijk. my_mail commando zou wel handig zijn idd!!

Perfect voor een testomgeving!

[ Voor 61% gewijzigd door bas.kb op 13-09-2004 11:30 ]


Acties:
  • 0 Henk 'm!

  • chris
  • Registratie: September 2001
  • Laatst online: 11-03-2022
je kan ook een my_mail functie maken die in je testomgeving alles naar een logbestand schrijft en "in het echt" een mailtje stuurt :)

Acties:
  • 0 Henk 'm!

  • pierre-oord
  • Registratie: April 2002
  • Laatst online: 10-02 23:00
Ik gebruik zelf ik dacht phpmailer, te vinden op sourceforge. Hierbij heb je een stuk meer opties voor het versturen van email. Ook is het erg handig; op m'n huidige linux machine heb ik tijdelijk de SMTP server uitstaan (even wat dingen sleutelen aan qmail), in dat script kun je, ook onder linux, gewoon een smtp server opgeven. Dus site werkt prima via een andere smtp server, zelfs met smtp authenticatie.

Acties:
  • 0 Henk 'm!

  • roelkw
  • Registratie: Augustus 2000
  • Laatst online: 23-06 20:49
chris schreef op 13 september 2004 @ 11:23:
je kan ook een my_mail functie maken die in je testomgeving alles naar een logbestand schrijft en "in het echt" een mailtje stuurt :)
Daar zou ik ook voor gaan. Misschien iets als dit?

PHP:
1
2
3
4
5
6
7
8
9
10
function my_mail($recipient,$title,$msg) {
  if (getenv("SERVER_NAME") == "testserver") {
    // dit is de testserver, geen mail sturen, wegschrijven naar logbestand, 
    // of misschien wel gewoon niets doen
    Log();
  } elseif (getenv("SERVER_NAME") == "realserver") { 
    // op de echte server wel mail sturen
    mail($met,$alle,$arguments);
  }
}

Acties:
  • 0 Henk 'm!

  • .oisyn
  • Registratie: September 2000
  • Laatst online: 03:42

.oisyn

Moderator Devschuur®

Demotivational Speaker

Bedenk overigens dat mail () nog een aantal optional parameters heeft

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


Acties:
  • 0 Henk 'm!

Verwijderd

Wat ik altijd doe is het ontvangend emailadres vervangen door mijn eigen emailadres, en dan vervolgens in het subject van het mailtje de oorspronkelijke ontvanger neerzetten.

Acties:
  • 0 Henk 'm!

  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 02:21

Janoz

Moderator Devschuur®

!litemod

Je zou ook een apparte mailserver in kunnen richten die wel mails accepteerd maar niet verstuurd. Op dat moment kun je ook goed kijken of alle maal wel is verstuurd en of ze van de juiste form zijn. Stel die mailserver in bij de testomgeving en klaar ;)

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'


Acties:
  • 0 Henk 'm!

  • JozyDaPozy
  • Registratie: December 2002
  • Laatst online: 18-09 17:39
Volgens mij is de manier gewoon een eigen mailfunctie schrijven SendEmail() ofzo.. en die tijdelijk een echo laten uitvoeren ofzo, ipv echt het mailtje versturen..

Dan wordt het dus een soort dummy-functie.

Als je het echt mooi wilt maken, laat je van een globale variabele afhangen wat je functie doet. Dan heb je gewoon boven in je script een globale variabele die aangeeft of je in de debug-modus bezig bent, of voor eggie!
Pagina: 1