PHP/Zend Framework mail niet naar 'buiten' sturen

Pagina: 1
Acties:

Onderwerpen


  • Deikke
  • Registratie: Juni 2004
  • Nu online
Voor test doeleinden zoek ik een oplossing waarbij verstuurde emails vanuit mijn programma niet naar buiten kunnen worden gestuurd. Dit wil zeggen dat ik ze het liefst zie afgeleverd in 1 mailbox waarin alles wordt gedumpt.

Omdat de testomgeving op dezelfde host staat, is het niet mogelijk om postfix configuratie aan te passen om dit aan te pakken met een catch-all voor alle domeinen. (misschien is het mogelijk op andere poort nogmaals te draaien met een andere config?)

Het is geen probleem om voor de testomgeving een aanpassing te maken in de mail configuratie binnen PHP of ZF, ook enkele extra headers toevoegen is geen probleem.

Ik wil dit graag omdat ik graag de mailtjes wil zien zoals ze origineel verstuurd zijn, met alle headers, eventuele CC's ed.

Heeft iemand een oplossing hiervoor?

  • TheDane
  • Registratie: Oktober 2000
  • Laatst online: 11:43

TheDane

1.618

Ik neem aan dat je testomgeving wel een fysiek andere codebase heeft dan de live versie. Dan is 't toch heel simpel om in die testomgeving alle email adressen (in de database) aan te passen naar je testaccount? Of dummy accounts bij bijv http://www.mailinator.com/

Ik zou sowieso niet met "echte" data werken in een testomgeving.

  • Cartman!
  • Registratie: April 2000
  • Niet online
Hij wil dus juist dat hij mailt naar het echte adres maar dat z'n testomgeving dit afvangt en het naar 1 mailadres stuurt. Ik denk dus dat dit alleen werkt door de config van je programma aan te passen waarmee je mailt (postfix geef je al aan). Daar verlies je dan wel de originele "To:-header" mee maar daar moet je dan maar mee leven.

Wat is de reden eigenlijk van de wens om het zo te testen?

  • Deikke
  • Registratie: Juni 2004
  • Nu online
TheDane: Mischien is dat ook wel de slimste oplossing, om alle email adressen gewoon te vervangen door een test adres.

Ik ben nu trouwens bezig om postfix op een andere poort te draaien (is niet echt een probleem), en daarna een aparte config voor deze poort te maken. Hier is iemand die dit al eens eerder gepoogd heeft:

http://marc.info/?l=postf...ers&m=106785853429494&w=2

Verwijderd

De oplossing is om de testomgeving te scheiden, dan kun je met een firewall ervoor zorgen dat er niet naar willekeurige adressen kan worden gemaild en dat alles in een bepaalde mailbox terechtkomt.

  • blaataaps
  • Registratie: Juli 2001
  • Niet online
Standaard gebruikt php op unix-achtige toestanden geen "poort" om via SMTP met de MTA te praten (er staat niet voor nik "For Win32 only" bij de smtp-instellingen in php.ini), dus de "extra postfix op een andere poort"-excercitie heeft nog niet zo veel zin denk ik.
Mocht de correcte tip van Cheatah hierboven niet tot de mogelijkheden behoren, kijk eens naar sendmail_path, en klus je eigen sendmail-scriptje.

Verwijderd

blaataaps schreef op donderdag 02 september 2010 @ 18:35:
Standaard gebruikt php op unix-achtige toestanden geen "poort" om via SMTP met de MTA te praten (er staat niet voor nik "For Win32 only" bij de smtp-instellingen in php.ini), dus de "extra postfix op een andere poort"-excercitie heeft nog niet zo veel zin denk ik.
Dit klopt helemaal. Maar ik heb nog even een toevoeging. Er zijn ook diverse frameworks en classes die de optie geven om mail te laten versturen via sendmail commando's, maar er zijn er óók die zelf een TCP connectie maken naar een externe verbinding. Vandaar het advies sowieso die firewall goed in te stellen.
Mocht de correcte tip van Cheatah hierboven niet tot de mogelijkheden behoren, kijk eens naar sendmail_path, en klus je eigen sendmail-scriptje.
En blokkeer uitgaand verkeer! ;)

  • Deikke
  • Registratie: Juni 2004
  • Nu online
Zend Framework, en vele andere mailers zoals PHPMailer bieden de mogelijkheid om mails via SMTP te versturen ipv sendmail.

Denk zelf dat inderdaad het aanpassen van de sendmail configuratie voor dit probleem misschien niet de beste oplossing is, maar op dit moment wel het meest realiseerbaar.

Ik wil dit eigenlijk zo hebben omdat er in dit geval nergens "vergeten" kan worden dat er een mail naar buiten kan. Dat dit door een aanpassing in de configuratie van php en/of ZF foolproof gerealiseerd kan worden is mijns inziens prima. Zodra de mogelijkheid/noodzaak ontstaat om een fysieke scheiding aan te brengen is het ook mogelijk om nooit een enkele mail via postfix naar binnen/buiten te laten gaan.

  • Freeaqingme
  • Registratie: April 2006
  • Laatst online: 12:39
Je kan ook een adapter gebruiken welke alle e-mails naar een bestand verstuurd ipv smtp server. Hier voorgesteld, en code hier, en komt waarschijnlijk met ZF1.11 (releasen we in een week of 4- 6).

Je kan ook gewoon je eigen adapter schrijven die alle e-mail adressen herschrijft naar iets lokaals.

No trees were harmed in creating this message. However, a large number of electrons were terribly inconvenienced.


Acties:
  • 0 Henk 'm!

  • Deikke
  • Registratie: Juni 2004
  • Nu online
freakingme: Dank voor die adapter, dat werkt ideaal. Vraag me alleen nog af of ik een mail client kan instellen om de mails te lezen op deze manier.

Acties:
  • 0 Henk 'm!

  • LuCarD
  • Registratie: Januari 2000
  • Niet online

LuCarD

Certified BUFH

Deikke schreef op vrijdag 03 september 2010 @ 11:17:
freakingme: Dank voor die adapter, dat werkt ideaal. Vraag me alleen nog af of ik een mail client kan instellen om de mails te lezen op deze manier.
Je kan ook een adapter schrijven die de email altijd redirect naar een test email adres. De mail wordt dan nog steeds verstuurd, maar alleen naar de locatie die jij wilt.

Programmer - an organism that turns coffee into software.

Pagina: 1