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

Inhoudsopgave:

E-mail verzenden vanuit een PHP-script met SMTP-authenticatie
E-mail verzenden vanuit een PHP-script met SMTP-authenticatie
Anonim

Wat te weten

  • PHP-klasse-opties: PHPmailer, SwiftMailer, Zend_Mail, XpertMailer, PEAR Mail.
  • PEAR Mail: Noteer de naam van de mailserver > controleer of PEAR Mail is geïnstalleerd > wijzig het PHP-bestand met behulp van de gegeven voorbeelden.

Dit artikel legt uit hoe je SMTP-authenticatie gebruikt om e-mail te verzenden met de PHP mail()-functie in PEAR Mail.

E-mail verzenden met de PHP-mailfunctie

Als je de functie PHP mail() gebruikt, verstuur je e-mail rechtstreeks vanaf je webserver in plaats van je 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-functie mail() geen ingebouwde manier biedt om e-mail via SMTP te verzenden. 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 je zien hoe je PEAR Mail gebruikt, maar je kunt elke klasse gebruiken die SMTP ondersteunt.

Image
Image

Als uw webhost al een of meer van deze klassen heeft geïnstalleerd, heeft deze waarschijnlijk tutorials die betrekking hebben op uw situatie. Zo ja, ga je gang en gebruik de klas waartoe je toegang hebt.

Gebruik deze methode alleen als je PHP gebruikt om je 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.

PEAR 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 de naam van uw mailserver. 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, wijzigt u een van de PHP-voorbeeldbestanden in de volgende secties om aan uw behoeften te voldoen.

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.

required_once "Mail.php";

$from="Naam afzender";

$to="Naam ontvanger";

$subject=" Onderwerpregel hier: ";

$body=" elk gewenst bericht ";

$host="yourmailhost.com";

$gebruikersnaam="uw gebruikersnaam of e-mailadres"; $password="uw wachtwoord";

$headers=array ('From'=> $from, 'To'=> $to, 'Subject'=> $subject);

$smtp=Mail::factory('smtp', array ('host'=> $host, 'auth'=> true, 'username'=> $username, 'password'=> $password));

$mail=$smtp->send($to, $headers, $body);

if (PEAR::isError($mail)) {

echo("

". $mail->getMessage()."

);

} else {echo("

Bericht succesvol verzonden!

);}

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

Als je SMTP-authenticatie en SSL-codering wilt gebruiken, moet je 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.

required_once "Mail.php";

$from="Naam afzender";

$to="Naam ontvanger";

$subject=" Onderwerpregel hier: ";

$body=" elk gewenst bericht ";

$host="ssl://yourmailhost.com";

$port="587"; $username="uw gebruikersnaam of e-mailadres";

$password="uw wachtwoord";

$headers=array ('From'=> $from, ' Aan'=> $aan, 'Onderwerp'=> $onderwerp);

$smtp=Mail::factory('smtp', array ('host'=> $host, 'port'=> $port, 'auth'=> true, 'username'=> $username, 'password'=> $wachtwoord));

$mail=$smtp->send($to, $headers, $body);

if (PEAR::isError($mail)) {

echo("

". $mail->getMessage()."

);

} else {echo("

Bericht succesvol verzonden!

);}

Aanbevolen: