Saltar al contenido

Τρόπος αποστολής email από σενάριο PHP χρησιμοποιώντας έλεγχο ταυτότητας SMTP

13 de junio de 2021

Η PHP ταχυδρομείο() η λειτουργία είναι απλή, εύχρηστη και λειτουργεί εξαιρετικά, αλλά είναι επίσης εξαιρετικά άκαμπτη. Εάν θέλετε να καθορίσετε έναν διακομιστή SMTP για τη χρήση του σεναρίου ή να χρησιμοποιήσετε έλεγχο ταυτότητας SMTP, δεν έχετε τύχη. Για να ξεπεράσετε αυτούς τους περιορισμούς και να στείλετε email από το σενάριο PHP χρησιμοποιώντας έλεγχο ταυτότητας SMTP, θα πρέπει να μεταβείτε σε μια τάξη PHP όπως το PHPmailer ή το πακέτο PEAR Mail.

Αποστολή email με τη λειτουργία αλληλογραφίας PHP

Όταν χρησιμοποιείτε το PHP ταχυδρομείο() λειτουργία, καταλήγετε να στέλνετε email απευθείας από τον διακομιστή ιστού σας και όχι από τον διακομιστή αλληλογραφίας σας. Εάν διαθέτετε διακομιστή αλληλογραφίας μέσω του κεντρικού υπολογιστή ιστού σας ή ακόμη και διακομιστή αλληλογραφίας με διαφορετικό κεντρικό υπολογιστή, είναι συνήθως καλύτερο να στέλνετε μηνύματα μέσω αυτού. Το πρόβλημα είναι ότι η PHP ταχυδρομείο() Η λειτουργία δεν παρέχει ενσωματωμένο τρόπο αποστολής αλληλογραφίας μέσω SMTP. Εάν θέλετε να ανοίξετε αυτήν τη λειτουργικότητα, θα πρέπει να εγκαταστήσετε μια επιπλέον κλάση PHP. Ακολουθούν ορισμένες επιλογές που λειτουργούν:

  • PHPmailer
  • SwiftMailer
  • Zend_Mail
  • XpertMailer
  • PEAR Mail

Θα σας δείξουμε πώς να χρησιμοποιήσετε το PEAR Mail, αλλά μπορείτε να χρησιμοποιήσετε οποιαδήποτε κλάση που υποστηρίζει SMTP.

Ήρωες Εικόνες / Getty
Εάν ο οικοδεσπότης Ιστού σας έχει ήδη εγκατεστημένη μία ή περισσότερες από αυτές τις τάξεις, πιθανότατα έχει εκπαιδευτικά προγράμματα σχετικά με την περίπτωσή σας. Εάν ναι, προχωρήστε και χρησιμοποιήστε την τάξη στην οποία έχετε πρόσβαση. Χρησιμοποιήστε αυτήν τη μέθοδο μόνο εάν χρησιμοποιείτε PHP για να δημιουργήσετε τις δικές σας προσαρμοσμένες φόρμες αλληλογραφίας. Εάν χρησιμοποιείτε ένα σύστημα διαχείρισης περιεχομένου (CMS) όπως το WordPress, αναζητήστε μια προσθήκη ή ενσωματωμένη λειτουργικότητα για την αποστολή αλληλογραφίας μέσω SMTP, αντί να προσπαθήσετε να δημιουργήσετε το δικό σας.

Τρόπος χρήσης του PEAR για αποστολή αλληλογραφίας μέσω SMTP

  1. Βεβαιωθείτε ότι ο τομέας σας δείχνει τις εγγραφές του Exchange Exchange (MX) του κεντρικού υπολογιστή διακομιστή αλληλογραφίας σας και σημειώστε το όνομα του διακομιστή αλληλογραφίας σας. Για παράδειγμα, μπορεί να είναι mail.yourdomain.net ή smtp.yourdomain.net.

  2. Ελέγξτε αν το PEAR Mail είναι ήδη εγκατεστημένο στον διακομιστή αλληλογραφίας σας.

  3. Εάν το PEAR Mail δεν είναι εγκατεστημένο, συμβουλευτείτε τον κεντρικό υπολογιστή αλληλογραφίας ιστού για συγκεκριμένες οδηγίες για να το εγκαταστήσετε.

  4. Μόλις εγκατασταθεί το PEAR Mail, τροποποιήστε ένα από τα παραδείγματα αρχείων PHP στις ακόλουθες ενότητες για να ταιριάζει στις ανάγκες σας.

Παράδειγμα PEAR Mail PHP Script για SMTP Mail

Εάν θέλετε, μπορείτε να δημιουργήσετε το δικό σας σενάριο από το μηδέν ή να τροποποιήσετε το ακόλουθο παράδειγμα σύμφωνα με τις προτιμήσεις σας. Βεβαιωθείτε ότι έχετε εισαγάγει το όνομα του διακομιστή αλληλογραφίας ιστού στη μεταβλητή κεντρικού υπολογιστή και χρησιμοποιήστε τα στοιχεία σύνδεσής σας για τον κεντρικό υπολογιστή αλληλογραφίας ιστού στα πεδία ονόματος χρήστη και κωδικού πρόσβασης. απαιτείται_once «Mail.php»;
$ from = «Όνομα αποστολέα «;
$ to = «Όνομα παραλήπτη «;
$ subject = «Γραμμή θέματος εδώ:»;
$ body = «οποιοδήποτε μήνυμα θέλετε»;
$ host = «yourmailhost.com»;
$ username = «το όνομα χρήστη ή το email σας»;
$ password = «ο κωδικός σας»;
$ headers = array (‘From’ => $ από,
«To» => $ σε,
«Θέμα» => θέμα $);
$ smtp = Mail :: factory (‘smtp’,
πίνακας (‘host’ => $ host,
‘auth’ => true,
«όνομα χρήστη» => όνομα χρήστη $,
‘κωδικός πρόσβασης’ => κωδικός πρόσβασης $));
$ mail = $ smtp-> send ($ to, $ headers, $ body);
εάν (PEAR :: isError ($ mail)) {
echo («

«. $ mail-> getMessage (). «

«);
} αλλιώς {
echo («

Το μήνυμα εστάλη επιτυχώς!

«);
}
?>

Παράδειγμα PEAR Mail PHP Script για έλεγχο ταυτότητας SMTP και κρυπτογράφηση SSL

Εάν θέλετε να χρησιμοποιήσετε έλεγχο ταυτότητας SMTP και κρυπτογράφηση SSL, θα πρέπει να κάνετε μερικές τροποποιήσεις στο προηγούμενο παράδειγμα. Θα χρειαστεί να τοποθετήσετε τη μεταβλητή κεντρικού υπολογιστή στον διακομιστή αλληλογραφίας SSL και επίσης να καθορίσετε έναν αριθμό θύρας όπως 25, 465, 587, 2525 ή 8025. Επικοινωνήστε με τον κεντρικό υπολογιστή αλληλογραφίας ιστού για περισσότερες πληροφορίες εάν δεν μπορείτε να καταλάβετε σε ποια θύρα χρήση. απαιτείται_once «Mail.php»;
$ from = «Όνομα αποστολέα «;
$ to = «Όνομα παραλήπτη «;
$ subject = «Γραμμή θέματος εδώ:»;
$ body = «οποιοδήποτε μήνυμα θέλετε»;
$ host = «ssl: //yourmailhost.com»;
$ port = «587»;
$ username = «το όνομα χρήστη ή το email σας»;
$ password = «ο κωδικός σας»;
$ headers = array (‘From’ => $ από,
«To» => $ σε,
«Θέμα» => θέμα $);
$ smtp = Mail :: factory (‘smtp’,
πίνακας (‘host’ => $ host,
‘port’ => $ θύρα,
‘auth’ => true,
«όνομα χρήστη» => όνομα χρήστη $,
‘κωδικός πρόσβασης’ => κωδικός πρόσβασης $));
$ mail = $ smtp-> send ($ to, $ headers, $ body);
εάν (PEAR :: isError ($ mail)) {
echo («

«. $ mail-> getMessage (). «

«);
} αλλιώς {
echo («

Το μήνυμα εστάλη επιτυχώς!

«);
}
?>