Hvordan sende e-post fra et PHP-skript ved hjelp av SMTP-autentisering

Innholdsfortegnelse:

Hvordan sende e-post fra et PHP-skript ved hjelp av SMTP-autentisering
Hvordan sende e-post fra et PHP-skript ved hjelp av SMTP-autentisering
Anonim

What to Know

  • PHP-klasse alternativer: PHPmailer, SwiftMailer, Zend_Mail, XpertMailer, PEAR Mail.
  • PEAR Mail: Noter e-postservernavn > sjekk at PEAR Mail er installert > endre PHP-fil ved å bruke eksempler gitt.

Denne artikkelen forklarer hvordan du bruker SMTP-autentisering til å sende e-post med PHP mail()-funksjonen i PEAR Mail.

Sende e-post med PHP Mail-funksjonen

Når du bruker PHP-e-post()-funksjonen, ender du opp med å sende e-post direkte fra webserveren din i stedet for e-postserveren. Hvis du har en e-postserver gjennom webverten din, eller til og med en e-postserver med en annen vert, er det vanligvis bedre å sende e-post gjennom den i stedet.

Problemet er at PHP mail()-funksjonen ikke gir noen innebygd måte å sende e-post via SMTP. Hvis du vil åpne opp denne funksjonaliteten, må du installere en ekstra PHP-klasse.

Her er noen alternativer som fungerer:

  • PHPmailer
  • SwiftMailer
  • Zend_Mail
  • XpertMailer
  • PEAR Mail

Vi viser deg hvordan du bruker PEAR Mail, men du kan bruke hvilken som helst klasse som støtter SMTP.

Image
Image

Hvis webverten din allerede har en eller flere av disse klassene installert, har den sannsynligvis veiledninger som gjelder din situasjon. I så fall, fortsett og bruk klassen du har tilgang til.

Bruk denne metoden bare hvis du bruker PHP til å lage dine egne tilpassede e-postskjemaer. Hvis du bruker et innholdsstyringssystem (CMS) som WordPress, se etter en plugin eller innebygd funksjonalitet for å sende e-post via SMTP, i stedet for å prøve å lage din egen.

Hvordan bruke PEAR til å sende e-post via SMTP

  1. Sørg for at domenet ditt peker mot Mail Exchange (MX)-postene til e-postserververten din, og noter e-postservernavnet ditt. Det kan for eksempel være mail.yourdomain.net eller smtp.yourdomain.net.
  2. Sjekk for å se om PEAR Mail allerede er installert på e-postserveren din.
  3. Hvis PEAR Mail ikke er installert, ta kontakt med web-postverten for spesifikke instruksjoner for å installere den.
  4. Når PEAR Mail er installert, modifiser en av eksempel PHP-filene i de følgende delene for å passe dine behov.

Eksempel PEAR Mail PHP-skript for SMTP-post

Du kan lage ditt eget skript fra bunnen av hvis du vil, eller endre følgende eksempel etter eget ønske. Sørg for å skrive inn nettpostservernavnet i vertsvariabelen, og bruk påloggingsinformasjonen for webpostverten i brukernavn- og passordfeltene.

require_once "Mail.php";

$from="Avsendernavn ";

$to="Mottakersnavn ";

$subject=" Emnelinje her: ";

$body=" hvilken som helst melding du vil ha ";

$host="yourmailhost.com";

$username="ditt brukernavn eller e-post"; $password="passordet ditt";

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

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

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

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

echo("

". $mail->getMessage()."

);

} annet {echo("

Meldingen er sendt!

);}

Eksempel PEAR Mail PHP-skript for SMTP-autentisering og SSL-kryptering

Hvis du vil bruke SMTP-autentisering og SSL-kryptering, må du gjøre noen endringer i det forrige eksemplet. Du må peke vertsvariabelen til SSL-postserveren din, og også spesifisere et portnummer som 25, 465, 587, 2525 eller 8025. Kontakt webpostverten for mer informasjon hvis du ikke kan finne ut hvilken port du skal bruk.

require_once "Mail.php";

$from="Avsendernavn ";

$to="Mottakersnavn ";

$subject=" Emnelinje her: ";

$body=" hvilken som helst melding du vil ha ";

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

$port="587"; $username="ditt brukernavn eller e-post";

$password="ditt passord";

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

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

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

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

echo("

". $mail->getMessage()."

);

} annet {echo("

Meldingen er sendt!

);}

Anbefalt: