[ PHP ] Verschil mail versturen via SMTP of mail()

Pagina: 1
Acties:

Acties:
  • 0 Henk 'm!

  • RickyHeijnen
  • Registratie: Maart 2005
  • Laatst online: 30-04 09:02
De situatie is als volgt... Als PHP developer gebruik ik de welbekende phpMailer class in projecten waarbij er mails verstuurd moeten worden vanuit een systeem. Ik doe dit zonder SMTP authenticatie maar gewoon via direct van PHP dus via gaat dit via de mail() functie.

Nu heb ik onlangs een bestaand project overgenomen voor een klant en zag tot mijn verbazing een wachtwoord in de code staan als SMTP wachtwoord waarmee ik ook in de IMAP van de klant kon inloggen. Dat lijkt mij zeeeeer onwenselijk, maar zet me wel even aan het denken waarom dit zo gedaan is.

Ik dacht dat je alleen SMTP gebruikt voor het versturen van grote batches e-mail bijv. een nieuwsbrief. En anders gewoon de PHP mail() functie voldoende is als je het IP van de server even toevoegen aan het SPF record.

Dus mijn vraag: Hoe doen jullie dit? Welke methode gebruik je voor jouw systeem om zo af en toe een mailtje te versturen. En is er een "best practice"?

Acties:
  • +1 Henk 'm!

  • Swedish Clown
  • Registratie: November 2010
  • Laatst online: 10-04 22:41

Swedish Clown

Erlang <3

Niet specifiek over PHP want daar ben ik al een tijdje uit maar slanke extern aan het mailen ben, doe dan lekker simpel en gebruik een van de verschillende externe partijen zoals Sendgrid, Mailchimp of Mailgun. Scheelt je een enorme berg gezeik als het om spammeldingen gaat :)

Wachtwoorden in je code :F Lekker in een config, buiten je versiebeheer, en versleuteld via één van de vele methoden (zoals git-crypt). Kost geen moeite :)

Always looking for developers wanting to work with Erlang.


Acties:
  • 0 Henk 'm!

  • Gomez12
  • Registratie: Maart 2001
  • Laatst online: 17-10-2023
Waarom zou je mail() gebruiken? Een SPF record "even toevoegen" voor een webserver is hier een absolute nogo, het ondermijnt het hele idee achter SPF (plus dat ik het liefste meerdere redundante webservers heb waardoor je weer meerdere webservers moet toevoegen etc).

Een mailserver (of een mailchimp/sendgrid/mailgun etc) is ervoor gemaakt om mail te versturen, waarom zou je het dan niet gewoon daar afleveren en hun hun ding laten doen, waarom moet jouw webserver dat trucje ook kunnen?

Acties:
  • 0 Henk 'm!

  • Hiroj
  • Registratie: Mei 2010
  • Laatst online: 04-09 14:23
Gomez12 schreef op woensdag 17 januari 2018 @ 23:49:
Waarom zou je mail() gebruiken? Een SPF record "even toevoegen" voor een webserver is hier een absolute nogo, het ondermijnt het hele idee achter SPF (plus dat ik het liefste meerdere redundante webservers heb waardoor je weer meerdere webservers moet toevoegen etc).

Een mailserver (of een mailchimp/sendgrid/mailgun etc) is ervoor gemaakt om mail te versturen, waarom zou je het dan niet gewoon daar afleveren en hun hun ding laten doen, waarom moet jouw webserver dat trucje ook kunnen?
De gemiddelde ondernemer doet best wel moeilijk om voor een dienst te betalen, die voorheen al opgenomen was in het product dat zij eerder aanschaffen.

Verder ben ik het wel helemaal met de rest eens dat het gebruiken van Mandrill / SendGrid / MailGun / MailChimp een betere oplossing is, dan PHPMailer.

Acties:
  • 0 Henk 'm!

  • Gomez12
  • Registratie: Maart 2001
  • Laatst online: 17-10-2023
Hiroj schreef op donderdag 18 januari 2018 @ 08:08:
[...]
De gemiddelde ondernemer doet best wel moeilijk om voor een dienst te betalen, die voorheen al opgenomen was in het product dat zij eerder aanschaffen.
De gemiddelde ondernemer gaat nog veel moeilijker doen als hij hoort dat zijn mailings in de spam-map belanden omdat het een shared web-server is die voorkomt op spamlijsten.

De wereld is veranderd, de spam-bestrijding is veranderd oftewel ook de mail goed versturen moet aangepakt worden. Als je dat niet kan verkopen, tja...

Acties:
  • +2 Henk 'm!

  • drm
  • Registratie: Februari 2001
  • Laatst online: 09-06 13:31

drm

f0pc0dert

Mailen vanaf je webhost voor statusmeldingen e.d. is niks mis mee. SPF records werken prima om je host als een "trusted" host kenbaar te maken aan de wereld. Je kunt het beter niet gebruiken voor mailinglists en dat soort dingen, maar dat is vooral omdat je dan ook bounces af wil kunnen vangen en click-throughrates wilt meten, en allemaal dat soort dingen. Dat moet je niet zelf willen bouwen.

Maar als jij gewoon wachtwoord-vergetenmailtjes en orderbevestigingetjes van je webshop wilt versturen hoef je je echt niet aan te laten praten dat je een maildienst moet gaan betalen.

Er is overigens geen feitelijk verschil tussen "SMTP" en "de mail() functie". mail() gebruikt onder water sendmail, en sendmail praat ook gewoon SMTP. Er is wel iets voor te zeggen dat dat een extra complicatie is die je niet nodig hebt.

Al met al zou ik vooral adviseren: if it ain't broke, don't fix it.

Music is the pleasure the human mind experiences from counting without being aware that it is counting
~ Gottfried Leibniz


Acties:
  • 0 Henk 'm!

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

NMe

Quia Ego Sic Dico.

drm schreef op donderdag 18 januari 2018 @ 20:33:
Maar als jij gewoon wachtwoord-vergetenmailtjes en orderbevestigingetjes van je webshop wilt versturen hoef je je echt niet aan te laten praten dat je een maildienst moet gaan betalen.
Dat gezegd hebbende is mail() gebruiken vragen om problemen en ben je beter af als je iets als SwiftMailer of PhpMailer gaat gebruiken, dan staan tenminste je headers vanzelf goed en is het risico dat je in een spamfilter terecht komt vele malen kleiner.

'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!

  • HollowGamer
  • Registratie: Februari 2009
  • Niet online
Of je gebruikt inderdaad een externe dienst voor mailing. :)

Maar kan prima dat er een wachtwoord instaat. Meestal inderdaad netjes dit te verpakken in een andere class of via een handler, maar er is opzicht niks mee.

Verwijst dit naar een lokale of een externe btw.? Wat gebeurd er als je er na pingt?

Acties:
  • +2 Henk 'm!

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

NMe

Quia Ego Sic Dico.

HollowGamer schreef op donderdag 18 januari 2018 @ 21:22:
Of je gebruikt inderdaad een externe dienst voor mailing. :)
Waarom? Kost alleen maar geld en voor de simpele dingen zoals drm omschrijft is dat echt nergens voor nodig.
Maar kan prima dat er een wachtwoord instaat. Meestal inderdaad netjes dit te verpakken in een andere class of via een handler, maar er is opzicht niks mee.
Daar is zeker wel iets mis mee. Je wachtwoorden horen niet in je code thuis maar in je config. Buiten de webroot.

'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!

  • Harrie_
  • Registratie: Juli 2003
  • Niet online

Harrie_

⠀                  🔴 🔴 🔴 🔴 🔴

Wij mailen uitsluitend over SMTP met auth vanuit .NET en PHP. Inderdaad zoals @NMe ook aangeeft wordt de config opgeslagen buiten de webroot.

Misschien relevant om erbij te vermelden dat wij uitsluitend klantspecifieke oplossingen maken en een eigen SMTP server gebruiken die bij de klant wordt gewhitelist.

Hoeder van het Noord-Meierijse dialect


Acties:
  • 0 Henk 'm!

  • HollowGamer
  • Registratie: Februari 2009
  • Niet online
NMe schreef op donderdag 18 januari 2018 @ 21:41:
[...]

Waarom? Kost alleen maar geld en voor de simpele dingen zoals drm omschrijft is dat echt nergens voor nodig.

[...]

Daar is zeker wel iets mis mee. Je wachtwoorden horen niet in je code thuis maar in je config. Buiten de webroot.
Dat is niet wat ik bedoelde, ben het helemaal eens dat het inloggegevens in een config moeten. :)

Het was meer bedoeld of het goed/fout was om iets te gebruiken als PHPMailer.
Dan zou ik deze altijd via een andere class aanroepen en niet direct in de code, zodat je altijd kunt switchen.

Verder heb je ook genoeg diensten die je gratis kan gebruiken tot 500 mails per maand.
Je zou ook prima mail kunnen onderbrengen bij een andere dienst die ervoor zorgt dat je zelf niet bezig hoeft te zijn met alle DNS-records en zorgen dat je niet op de spam list komt omdat een instelling niet goed staat.

Dat kost ongeveer een paar euro per maand, maar dan ben je wel van het .. af. ;)

Acties:
  • 0 Henk 'm!

  • RickyHeijnen
  • Registratie: Maart 2005
  • Laatst online: 30-04 09:02
drm schreef op donderdag 18 januari 2018 @ 20:33:
Maar als jij gewoon wachtwoord-vergetenmailtjes en orderbevestigingetjes van je webshop wilt versturen hoef je je echt niet aan te laten praten dat je een maildienst moet gaan betalen.
Dit is inderdaad waar we het over hebben... 5 tot max 10 mailtjes per dag met dit soort simpele inhoud. Niks spannends aan.
Gomez12 schreef op woensdag 17 januari 2018 @ 23:49:
Waarom zou je mail() gebruiken? Een SPF record "even toevoegen" voor een webserver is hier een absolute nogo, het ondermijnt het hele idee achter SPF (plus dat ik het liefste meerdere redundante webservers heb waardoor je weer meerdere webservers moet toevoegen etc)
Met dat laatste begrijp ik SPF dan geen optie is, maar waarom is het sowieso een absolute nogo? Is dat niet een beetje overtrokken voor echt kleine websites?

Als ik het draadje zo'n beetje lees wordt het me duidelijk dat mail uitbesteden de beste optie is, maar dat de andere opties ook prima genoeg zijn voor de schaal waar ik me met deze projecten op bevindt. Vat ik het zo goed samen?

[ Voor 10% gewijzigd door RickyHeijnen op 19-01-2018 10:18 ]


Acties:
  • +1 Henk 'm!

  • Hiroj
  • Registratie: Mei 2010
  • Laatst online: 04-09 14:23
Gomez12 schreef op donderdag 18 januari 2018 @ 16:03:
[...]

De gemiddelde ondernemer gaat nog veel moeilijker doen als hij hoort dat zijn mailings in de spam-map belanden omdat het een shared web-server is die voorkomt op spamlijsten.

De wereld is veranderd, de spam-bestrijding is veranderd oftewel ook de mail goed versturen moet aangepakt worden. Als je dat niet kan verkopen, tja...
Maandelijks versturen mijn klanten +/- 300k non marketing mails (de marketing mails komen op zo'n 2-3 miljoen per maand uit en gaan via een andere dienst dan waar de non marketing mails verstuurd worden), waarbij toch vrijwel wekelijks iemand issues heeft met de aflevering. Gezien de spamfilters vandaag de dag - terecht - enorm streng zijn, schuilt het gevaar daarom ook in een klein hoekje om in de spam folder terecht te komen.

Acties:
  • 0 Henk 'm!

  • michaelboon82
  • Registratie: December 2010
  • Laatst online: 06-10 16:08
Ik gebruik zelf PHPmailer wat voor mij uitstekend werkt. Volgens mij beland er weinig in de SPAM bij mijn klanten. De mail wordt dan verstuurd vanaf SMPT mail.*snip*.nl, en de afbeeldingen die in mijn mailtjes staan worden van Google Drive gehaald.

Je kan zelf even testen of een mailtje van mij in je SPAM terecht komt door een onzinberichtje te sturen via https://www.*snip*.nl/contact/

Bij mij gaan er een paar mailtjes per dag door dus voor een lichte gebruiker lijkt PHPmailer mij een goede keuze!

[ Voor 5% gewijzigd door RobIII op 20-01-2018 02:57 ]

Pagina: 1