[HTML] mail versturen met SMTP

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • egonolieux
  • Registratie: Mei 2009
  • Laatst online: 06-01-2024

egonolieux

Professionele prutser

Topicstarter
Beste tweakers,

Ik maak dikwijls gebruik van telnet om e-mail te verzenden via SMTP (de server van telenet, mijn ISP). Alle e-mails die ik tot nu toe heb verzonden, waren in gewone platte tekst (RTF). Omdat dat er nogal lelijk uitziet, wou ik graag eens html uitproberen om de boel wat op te knappen.
Aangezien de html code door de mailserver als platte tekst wordt gezien, heb ik wat opzoekwerk gedaan, en kwam ik op het volgende uit:

code:
1
2
3
4
5
6
7
8
9
10
11
12
Subject: My Subject 
To: recipient@kbcafe.com 
From: sender@kbcafe.com 
MIME-Version: 1.0 
Content-Type: text/html 
 charset="iso-8859-1" 
  
<HTML> 
<BODY> 
<P>Hier plaats ik de mail in HTML code</PL> 
</BODY> 
</HTML>


Toen ik de mail opgesteld zoals hierboven verzond, dan was ik zelfs niet in staat deze te ontvangen in mijn inbox.
Na nog wat verder onderzoek en googelen, kwam ik steeds uit op dingen die te maken hadden met HTML mail, maar nergens kon ik iets over HTML in SMTP vinden. Ik heb zo een beetje de indruk dat ik op het verkeerde spoor ben gaan zoeken. Nochtans is mijn eis niet zo veel. Ik wil gewoon HTML kunnen verzenden via SMTP, meer niet.

Acties:
  • 0 Henk 'm!

  • Gomez12
  • Registratie: Maart 2001
  • Laatst online: 17-10-2023
Of je zoekt de complete specs op (en die zijn best uitgebreid) of (en dat zou ik aanraden) zoek een of andere server side script taal wat gewoon een klasse kent die dit afhandelt. Php kent er genoeg, python heeft er genoeg, perl heeft er genoeg. Take your pick zou ik zeggen.

Sowieso is rechtstreeks mailen via telnet redelijk twijfelachtig (vang je ook echt alle fouten op)

Acties:
  • 0 Henk 'm!

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 09-09 13:58

NMe

Quia Ego Sic Dico.

Laten we het onderliggende probleem eens gaan uitzoeken voordat we gaan proberen je te helpen. Waarom loop je in hemelsnaam handmatig via telnet te mailen? Da's zo'n beetje hetzelfde als telnet gebruiken om websites binnen te trekken in plaats van je browser; het kan allemaal vast wel maar het is er niet voor bedoeld.

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


Acties:
  • 0 Henk 'm!

  • TheBorg
  • Registratie: November 2002
  • Laatst online: 20-09 18:24

TheBorg

Resistance is futile.

Misschien zit het in de details.

code:
1
Content-Type: text/html; charset="iso-8859-1"


Daarnaast is een mime mail 7bit:
code:
1
Content-Transfer-Encoding: 7bit


En ik heb geen idee of de boundry verplicht is als je geen meerdere "parts" hebt:
code:
1
Content-Type: multipart/mixed; boundary="RANDOMSTRING"; type="text/html"

Acties:
  • 0 Henk 'm!

  • Gomez12
  • Registratie: Maart 2001
  • Laatst online: 17-10-2023
TheBorg schreef op dinsdag 26 april 2011 @ 23:52:
Misschien zit het in de details.
Waarschijnlijk niet...

Waarschijnlijk krijg je met redelijk veel trial & errors in de details je emailtje wel leesbaar afgeleverd op 1 specifiek adres. Maar om echt mail te versturen moet je echt iets verder gaan dan de details.

Met het absolute minieme aan benodigheden zou je voldoen aan de officiele standaard, maar zo goed als geen enkel spamfilter laat je erdoor. Veel mailprogramma's zullen je mail niet tonen omdat het geen text gedeelte bevat (detail). Etc. etc.

Sinds de officiele specs is er redelijk wat aangepast op email gebied (het spamgehalte schijnt iets hoger te liggen tegenwoordig).
Telnetten naar een mail-server is leuk als test of om een nood-text mailtje te versturen, maar om een redelijk te ontvangen html mailtje te krijgen moet je iets meer doen dan wat details aanpassen in het hier gegeven voorbeeld.

Maar als je het echt op detail nivo wilt hebben, je sluit je P niet af en je opent je PL niet ;)

Acties:
  • 0 Henk 'm!

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
NMe schreef op dinsdag 26 april 2011 @ 23:48:
Laten we het onderliggende probleem eens gaan uitzoeken voordat we gaan proberen je te helpen. Waarom loop je in hemelsnaam handmatig via telnet te mailen?
Ik denk dat 'ie bedoelt dat 'ie een telnet client gebruikt om met een SMTP server te verbinden. Ik doe dat "all the time" als ik zaken wil debuggen. Niks geks aan om even "op 't vinkentouw" te gaan zitten en exacte communicatie volgen (hoewel een wireshark oid ook handig kan zijn).
NMe schreef op dinsdag 26 april 2011 @ 23:48:
Da's zo'n beetje hetzelfde als telnet gebruiken om websites binnen te trekken in plaats van je browser
Ook dat kan handig zijn bij debuggen (en gebrek aan debugging tools als wireshark etc.) of om, bijv, een "crawler view" te krijgen van je site (en ook daar is Lynx bijv. handig(er) maar toch, ook dat heb ik bij tijd en wijlen wel eens gedaan/gebruikt).

Los daarvan: ik denk dat Gomez12 aardig in de richting zit. En dat is al tot-in-den-treure hier aan bod geweest; als je mail "te kaal" of "te simpel" is wordt 't al snel als spam bestempeld.

[ Voor 52% gewijzigd door RobIII op 27-04-2011 00:58 ]

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


Acties:
  • 0 Henk 'm!

  • Ventieldopje
  • Registratie: December 2005
  • Laatst online: 19-09 11:00

Ventieldopje

I'm not your pal, mate!

Om je even op het juiste spoor te helpen, de HTML wordt door alles gezien als text, pas bij de ontvanger zal de HTML weergegeven worden zoals je die bedoelt hebt door het mail programma dat de ontvanger gebruikt, deze moet natuurlijk wel HTML mails ondersteunen natuurlijk, elke moderne mail client kan dat tegenwoordig wel.

Wat betreft de headers, kijk hier eens naar:
http://php.net/manual/en/function.mail.php en dan bij Example #4, daar staan de headers die mee verzonden worden ;)

www.maartendeboer.net
1D X | 5Ds | Zeiss Milvus 25, 50, 85 f/1.4 | Zeiss Otus 55 f/1.4 | Canon 200 f/1.8 | Canon 200 f/2 | Canon 300 f/2.8


Acties:
  • 0 Henk 'm!

  • Remus
  • Registratie: Juli 2000
  • Laatst online: 15-08-2021
Heb je eigenlijk wel het SMTP protocol gebruikt om de mail te versturen zie bijvoorbeeld Wikipedia: Simple Mail Transfer Protocol

Het zal SMTP worst wezen wat de inhoud van je mailbericht is, de headers en body van een mailtje zijn voornamelijk informatie voor je mailclient.

De enige fout die ik zo snel in je headers zie is dat er een ';' achter text/html hoort indien je ook de charset vermeldt.

Overigens zou ik inderdaad zoals anderen aangeven een bestaande mail-library gebruiken ipv het wiel opnieuw uit te vinden.

Let daarnaast op dat mail nog weleens genegeerd (of geweigerd) door de eigen SMTP of de ontvangende SMTP kan worden als de sender-address (MAIL FROM-command) niet geauthoriseerd is voor de mailserver, of het domain van het adres de betreffende mailserver niet als MX heeft.
Pagina: 1