Skip to content

E-mail verzenden vanuit een PHP-script met SMTP-verificatie

15 de juni de 2021
GettyImages 697538583 34e5976bad0a422b836b20a3221376e0

de PHP mail() functie is eenvoudig, gebruiksvriendelijk en werkt geweldig, maar is ook extreem inflexibel. Als je een SMTP-server wilt specificeren voor het script dat moet worden gebruikt, of SMTP-authenticatie wilt gebruiken, heb je pech. Om deze beperkingen te overwinnen en e-mail te verzenden vanuit uw PHP-script met behulp van SMTP-authenticatie, moet u zich wenden tot een PHP-klasse zoals PHPmailer of het PEAR Mail-pakket.

E-mail verzenden met de PHP-mailfunctie

Wanneer u de PHP . gebruikt mail() functie verstuurt u e-mail rechtstreeks vanaf uw webserver in plaats van uw mailserver. Als je een mailserver hebt via je webhost, of zelfs een mailserver met een andere host, is het meestal beter om daar mail via te sturen. Het probleem is dat de PHP mail() functie biedt geen ingebouwde manier om e-mail te verzenden via SMTP. Als je die functionaliteit wilt openen, moet je een extra PHP-klasse installeren. Hier zijn enkele opties die werken:

  • PHPmailer
  • SwiftMailer
  • Zend_Mail
  • XpertMailer
  • PEAR Mail

We laten u zien hoe u PEAR Mail gebruikt, maar u kunt elke klasse gebruiken die SMTP ondersteunt.

Als uw webhost al een of meer van deze klassen heeft geïnstalleerd, heeft deze waarschijnlijk zelfstudies die betrekking hebben op uw situatie. Als dat zo is, ga je gang en gebruik de klas waartoe je toegang hebt. Gebruik deze methode alleen als u PHP gebruikt om uw eigen aangepaste e-mailformulieren te maken. Als je een contentmanagementsysteem (CMS) zoals WordPress gebruikt, zoek dan naar een plug-in of ingebouwde functionaliteit om e-mail te verzenden via SMTP, in plaats van te proberen je eigen systeem te maken.

Hoe PEAR te gebruiken om e-mail te verzenden via SMTP

  1. Zorg ervoor dat uw domein verwijst naar de Mail Exchange (MX)-records van uw mailserverhost en noteer uw mailservernaam. Dit kan bijvoorbeeld mail.uwdomein.net of smtp.uwdomein.net zijn.

  2. Controleer of PEAR Mail al op uw mailserver is geïnstalleerd.

  3. Als PEAR Mail niet is geïnstalleerd, neem dan contact op met uw webmailhost voor specifieke instructies om het te installeren.

  4. Zodra PEAR Mail is geïnstalleerd, past u een van de PHP-voorbeeldbestanden in de volgende secties aan uw behoeften aan.

Voorbeeld PEAR Mail PHP-script voor SMTP-mail

Je kunt je eigen script helemaal opnieuw maken als je wilt, of het volgende voorbeeld naar wens aanpassen. Zorg ervoor dat u de naam van uw webmailserver invoert in de hostvariabele en gebruik uw aanmeldingsgegevens voor uw webmailhost in de gebruikersnaam- en wachtwoordvelden. vereisen_once “Mail.php”;
$from = “Naam afzender “;
$to = “Naam ontvanger “;
$subject = ” Onderwerpregel hier: “;
$body = ” elk bericht dat u wilt “;
$host = “uwmailhost.com”;
$username = “uw gebruikersnaam of e-mailadres”;
$password = “uw wachtwoord”;
$headers = array (‘Van’ => $van,
‘Naar’ => $naar,
‘Onderwerp’ => $onderwerp);
$smtp = Mail::fabriek(‘smtp’,
array (‘host’ => $host,
‘auth’ => waar,
‘gebruikersnaam’ => $gebruikersnaam,
‘wachtwoord’ => $wachtwoord));
$mail = $smtp->send($to, $headers, $body);
if (PEAR::isError($mail)) {
echo(“

” . $mail->getMessage() . “

“);
} anders {
echo(“

Bericht succesvol verzonden!

“);
}
?>

Voorbeeld PEAR Mail PHP-script voor SMTP-authenticatie en SSL-codering

Als u SMTP-authenticatie en SSL-codering wilt gebruiken, moet u een paar wijzigingen aanbrengen in het vorige voorbeeld. U moet de hostvariabele naar uw SSL-mailserver verwijzen en ook een poortnummer opgeven, zoals 25, 465, 587, 2525 of 8025. Neem contact op met uw webmailhost voor meer informatie als u niet kunt achterhalen welke poort u moet gebruiken. gebruik. vereisen_once “Mail.php”;
$from = “Naam afzender “;
$to = “Naam ontvanger “;
$subject = ” Onderwerpregel hier: “;
$body = ” elk bericht dat u wilt “;
$host = “ssl://uwmailhost.com”;
$poort = “587”;
$username = “uw gebruikersnaam of e-mailadres”;
$password = “uw wachtwoord”;
$headers = array (‘Van’ => $van,
‘Naar’ => $naar,
‘Onderwerp’ => $onderwerp);
$smtp = Mail::fabriek(‘smtp’,
array (‘host’ => $host,
‘poort’ => $poort,
‘auth’ => waar,
‘gebruikersnaam’ => $gebruikersnaam,
‘wachtwoord’ => $wachtwoord));
$mail = $smtp->send($to, $headers, $body);
if (PEAR::isError($mail)) {
echo(“

” . $mail->getMessage() . “

“);
} anders {
echo(“

Bericht succesvol verzonden!

“);
}
?>