[PHP] Complete mail (vanaf SMTP server) uit elkaar halen

Pagina: 1
Acties:
  • 102 views sinds 30-01-2008
  • Reageer

Onderwerpen


Acties:
  • 0 Henk 'm!

  • Tanuki
  • Registratie: Januari 2005
  • Niet online
Hallo.

Weet iemand een script of link waarin uitgelegd staat hoe je berichten kan uitlezen vanaf de SMTP server? Het uitlezen van de headers lukt nog wel en vaak het bericht ook nog wel, maar zogauw HTML en tekst gecombineerd is wil het niet altijd lukken en met een bijlage is het helemaal een ramp, zeker als er meerdere boundary's gebruikt worden.

Nu vroeg ik me dus af of er misschien mensen zijn die hier ook tegenaan liepen en zelf een stuk code ervoor hebben geschreven wat ze willen delen of zelf iets op Google hebben gevonden (ik kon daar niks over vinden...).

Ik heb eens in het script van Bas Meel gekeken (webmeel (POP3/SMTP mail zonder imap), maar volgens mij is dat ook niet helemaal netjes gedaan en hij leest ze ook direct van de SMTP server uit. Ik heb het complete bericht gewoon in een string, dus dat was niet echt praktisch.


Wat ik dus wil is eigenlijk gewoon een array (of iets dergelijks) met daarin de header (dat kan ik evt. zelf nog wel) en de body, htmlbody en evt. de attachments.

PV: Growatt MOD5000TL3-XH + 5720wp, WPB: Atlantic Explorer v4 270LC, L/L: MHI SCM 125ZM-S + SRK 50ZS-W + 2x SRK 25ZS-W + SRK 20ZS-W Modbus kWh meter nodig?


Acties:
  • 0 Henk 'm!

  • Creepy
  • Registratie: Juni 2001
  • Laatst online: 08:17

Creepy

Tactical Espionage Splatterer

Als eerste: je vraag naar een script lijkt op een (jawel) scriptrequest. Je weet ondertussen ook wel dat we die hier niet toestaan.


Het SMTP protocol staat netjes in een RFC's. Het MIME gebeuren (voor attachments, tekst en HTML versies in 1) ook. Daarnaast zijn er wel degelijk SMTP en MIME classes/scripts te vinden via google. Zat er daar geen één tussen die bruikbaar is voor je?

"I had a problem, I solved it with regular expressions. Now I have two problems". That's shows a lack of appreciation for regular expressions: "I know have _star_ problems" --Kevlin Henney


Acties:
  • 0 Henk 'm!

  • Tanuki
  • Registratie: Januari 2005
  • Niet online
Creepy schreef op vrijdag 08 december 2006 @ 14:43:
Als eerste: je vraag naar een script lijkt op een (jawel) scriptrequest. Je weet ondertussen ook wel dat we die hier niet toestaan.


Het SMTP protocol staat netjes in een RFC's. Het MIME gebeuren (voor attachments, tekst en HTML versies in 1) ook. Daarnaast zijn er wel degelijk SMTP en MIME classes/scripts te vinden via google. Zat er daar geen één tussen die bruikbaar is voor je?
Dit is niet zozeer een script request, omdat ik niet vraag om een compleet script dat dit doet, ik ben gewoon opzoek naar een class (of functie) die dit kan, aangezien ik denk dat er wel meer mensen zijn die dit ooit nodig hebben gehad.

Ik kon op Google niet veel vinden en ik heb toch echt wel gezocht op "php read mail smtp", "php mail attachment" etc. etc.

Ik ga nog eens Googlen dan, want ik heb bijv. niet op MIME gezocht. Heb jij dan misschien een linkje naar die classes waar je het over hebt, want dat is juist wat ik zoek.

PV: Growatt MOD5000TL3-XH + 5720wp, WPB: Atlantic Explorer v4 270LC, L/L: MHI SCM 125ZM-S + SRK 50ZS-W + 2x SRK 25ZS-W + SRK 20ZS-W Modbus kWh meter nodig?


Acties:
  • 0 Henk 'm!

  • SinergyX
  • Registratie: November 2001
  • Laatst online: 11-06 13:51

SinergyX

____(>^^(>0o)>____

Je zou bij http://www.phpclasses.org kunnen kijken, daar heb ik vaker zulke classes langs zien komen.

Nog 1 keertje.. het is SinergyX, niet SynergyX
Im as excited to be here as a 42 gnome warlock who rolled on a green pair of cloth boots but was given a epic staff of uber awsome noob pwning by accident.


Acties:
  • 0 Henk 'm!

  • Brakkie
  • Registratie: Maart 2001
  • Niet online

Brakkie

blaat

http://pear.php.net/packages.php?catpid=14&catname=Mail En dan vooral de Mail_Imap class?

Bij Pear is voor elk probleem bijna wel een oplossing te vinden. Op php gebied dan he ;)


Documentatie: http://www.spicypeanut.ne...1f53dcea08bfb2462c6e0e44c

[ Voor 24% gewijzigd door Brakkie op 08-12-2006 14:56 ]

Systeem | Garmin Connect


Acties:
  • 0 Henk 'm!

  • Tanuki
  • Registratie: Januari 2005
  • Niet online
Bovenstaande class op PHPClasses.org is wel een oplossing, echter krijg ik alleen _informatie_ terug, niet de berichten en headers?
Ik krijg iets van offsets en posities en true/false waarden terug in een array, maar ik kan nergens vinden waar ik het bericht vandaan kan halen.

De PEAR class kan ik helaas niet gebruiken omdat ik geen IMAP functies tot mijn beschikking heb. :(

We hebben nu een tijdelijke oplossing en dat is gewoon het bericht zover uitlezen als mogelijk en bij het opslaan van het bericht in de database ook het originele bericht (dus gewoon de letterlijke source) erbij opslaan. Mochten we ooit nog eens een class/function vinden die wèl het hele bericht kan uitlezen (evt. incl. bijlages), kunnen we een script maken dat de sources parset en de database bijwerkt.

PV: Growatt MOD5000TL3-XH + 5720wp, WPB: Atlantic Explorer v4 270LC, L/L: MHI SCM 125ZM-S + SRK 50ZS-W + 2x SRK 25ZS-W + SRK 20ZS-W Modbus kWh meter nodig?


Acties:
  • 0 Henk 'm!

Anoniem: 174951

l0c4lh0st schreef op vrijdag 08 december 2006 @ 14:36:

Wat ik dus wil is eigenlijk gewoon een array (of iets dergelijks) met daarin de header (dat kan ik evt. zelf nog wel) en de body, htmlbody en evt. de attachments.
PHP:
1
imap_headerinfo()


lijkt me?

edit2: Oh, ik zie dat je geen IMAP functies kan gebruiken... waarom eigenlijk niet?

These functions are not limited to the IMAP protocol, despite their name. The underlying c-client library also supports NNTP, POP3 and local mailbox access methods.

Heb je een andere oplossing email?

[ Voor 36% gewijzigd door Anoniem: 174951 op 11-12-2006 13:20 ]


Acties:
  • 0 Henk 'm!

  • stekkel
  • Registratie: Augustus 2001
  • Laatst online: 11-06 11:55
Zo moeilijk is het niet om zelf te maken. De header eindigt met \r\n\r\n dus strpos gecombineerd met substr geeft je de header.
Daarna de content-type header eruit filteren en de boundary extracten.
Met de boundary kan je weer de verschillende mime parts uit je mail vinden. Je moet dan nog wel de mimeheaders parsen om wat zinvols met het betreffende mimepart te doen.

Maar waarom wil je dit eigenlijk? Wat is de achterliggende gedachte om de mimeparts separaat in een DB op te slaan?

Acties:
  • 0 Henk 'm!

  • Tanuki
  • Registratie: Januari 2005
  • Niet online
stekkel schreef op maandag 11 december 2006 @ 19:19:
Zo moeilijk is het niet om zelf te maken. De header eindigt met \r\n\r\n dus strpos gecombineerd met substr geeft je de header.
Daarna de content-type header eruit filteren en de boundary extracten.
Met de boundary kan je weer de verschillende mime parts uit je mail vinden. Je moet dan nog wel de mimeheaders parsen om wat zinvols met het betreffende mimepart te doen.

Maar waarom wil je dit eigenlijk? Wat is de achterliggende gedachte om de mimeparts separaat in een DB op te slaan?
Dat met die header vinden wil wel lukken. De body uitlezen ook wel, maar zogauw er meerdere boundary's in staan weet ik echt niet meer wat ik moet doen. En ook met bijlagen weet ik me geen raad.

Daarnaast is het nog zo dat soms het einde van een gedeelte (text/plain of text/html) gewoon aan het begin van een volgend deel geplakt zijn (vooral bij Outlook is dat zo, volgens mij), ik kan dus daar niet explode() gebruiken op \r\n\r\n. |:(


We willen dit trouwens in een database opslaan omdat we een soort van online beheer dingetje willen maken.

[ Voor 5% gewijzigd door Tanuki op 12-12-2006 09:34 ]

PV: Growatt MOD5000TL3-XH + 5720wp, WPB: Atlantic Explorer v4 270LC, L/L: MHI SCM 125ZM-S + SRK 50ZS-W + 2x SRK 25ZS-W + SRK 20ZS-W Modbus kWh meter nodig?


Acties:
  • 0 Henk 'm!

  • soczol
  • Registratie: Oktober 2002
  • Laatst online: 11-06 18:01

soczol

Doet iets met energie

Op de door Brakkie aangehaalde page staat ook een klasse die lijkt te doen wat jij wilt:

http://pear.php.net/package/Mail_Mime/

Ookal geeft de omschrijving van deze klasse niet meteen de indruk dat deze ook mailtjes in kan lezen, kan deze dit wel. Dit blijkt ook na een simpele google search op "PHP Mime Decode":
PEAR :: Package :: Mail_Mime
Provides classes to create and decode mime messages
Voor een voorbeeld en overige documentatie kun je terecht op: http://pear.php.net/manua...il-mimedecode.example.php

[ Voor 0% gewijzigd door soczol op 12-12-2006 20:25 . Reden: typo's ]

Pagina: 1