Αποστολή email μέσω smtp με εξουσιοδότηση php. Αποστολή αλληλογραφίας μέσω SMTP σε PHP. Αποστολή αλληλογραφίας php μέσω ρύθμισης σεναρίου SMTP

Αποστολή αλληλογραφίας PHP

Αυτή η λειτουργία υλοποιείται από προεπιλογή ως αποστολή email. Αυτή η λειτουργία δεν απαιτεί διακομιστή τρίτου μέρους για την προώθηση email. Για να ελέγξετε την ορθότητα αυτής της συνάρτησης, απλώς δημιουργήστε ένα αρχείο test.php στον φάκελο με τον ιστότοπο και τοποθετήστε τον ακόλουθο κώδικα εκεί:

Όπου αντί "ΗΛΕΚΤΡΟΝΙΚΗ ΔΙΕΥΘΥΝΣΗΠΑΡΑΛΗΠΤΗΣ" Εισαγάγετε το email στο οποίο πρέπει να σταλεί η επιστολή.

Θέση αυτό το αρχείοστη ρίζα του ιστότοπού σας.

Στη συνέχεια, πληκτρολογήστε www.YourDomain/test.php στη γραμμή διευθύνσεων. Εάν ληφθεί μια επιστολή στο καθορισμένο email, τότε η φιλοξενία σας λειτουργεί σωστά με τη λειτουργία αποστολής επιστολών " Αποστολή αλληλογραφίας PHP" . Είναι πιθανό η επιστολή να κατέληξε σε ανεπιθύμητη αλληλογραφία, επομένως πρέπει επίσης να ελεγχθεί.

Εάν το γράμμα έφτασε σε ακατανόητη κωδικοποίηση, αλλάξτε τη γραμμή: "Έλεγχος αποστολής αλληλογραφίας"επί "Έλεγχος αποστολής αλληλογραφίας", "Content-type:text/html;charset=utf-8".

Και επαναλάβετε την αποστολή της επιστολής μέσω της γραμμής διευθύνσεων του προγράμματος περιήγησής σας.

Εάν μετά τους παραπάνω χειρισμούς η δοκιμαστική επιστολή δεν φτάσει στον τελικό παραλήπτη, πρέπει να επικοινωνήσετε με την τεχνική υποστήριξη φιλοξενίας.

Μεταξύ των ελλείψεων αυτή τη μέθοδοΑξίζει να σημειωθεί ότι η εργασία δεν είναι μόνιμη αυτή τη μέθοδο. Ενδέχεται να υπάρξουν διακοπές στην αποστολή email από την πλευρά της φιλοξενίας.

Το κύριο μειονέκτημα αυτής της μεθόδου είναι ότι όλες οι επιστολές που αποστέλλονται στα email των πελατών δεν θα αναγνωρίζονται από τις υπηρεσίες αλληλογραφίας (gmail, mail.ru, yandex.ru), καθώς στάλθηκαν απευθείας από τον ιστότοπό σας.

Η υπηρεσία αλληλογραφίας Gmail εμφανίζει αυτά τα γράμματα με ένα ερωτηματικό και την υπογραφή: "Το σύστημα Gmail δεν μπόρεσε να επιβεβαιώσει ότι αυτή η επιστολή στάλθηκε από τον τομέα YourDomain. Αυτό μπορεί να είναι ανεπιθύμητο".

Για να αποφευχθεί αυτή η κατάσταση .

SMTP (απλό πρωτόκολλο μεταφοράς αλληλογραφίας)

SMTP - πρωτόκολλο μεταφοράς αλληλογραφίας. Συνολικά, για να ρυθμίσετε τη μετάδοση αλληλογραφίας χρησιμοποιώντας αυτό το πρωτόκολλο, χρειάζεστε τον ίδιο τον διακομιστή SMTP. Η πιο κοινή επιλογή για τη χρήση εταιρικής αλληλογραφίας (domain) yandex.ru ως διακομιστή SMTP είναι η https://pdd.yandex.ru/.

Πρώτα από όλα είναι απαραίτητο λογαριασμός (ταχυδρομείο) yandex, βάσει των οποίων θα δημιουργηθούν email για τον τομέα σας: “order@YourDomain” “info@YourDomain”... Ο κύριος λογαριασμός δεν θα είναι ορατός πουθενά και χρησιμοποιείται μόνο για τη δημιουργία email domain με βάση αυτόν στο μέλλον.

Αφού συνδεθείτε στο δικό σας ΠΡΟΣΩΠΙΚΟΣ ΛΟΓΑΡΙΑΣΜΟΣΗ αλληλογραφία τομέα Yandex δημιουργείται χρησιμοποιώντας τον σύνδεσμο https://pdd.yandex.ru/. Αυτό είναι το email τομέα που θα βλέπουν οι χρήστες στο πεδίο "Αποστολέας".

Το πεδίο "Αποστολέας" απαιτείται κατά την αποστολή email μέσω SMTP. Χρήση SMTP για αποστολή γραμμάτων, ένας συνδυασμός " Τομέα" - "ΗΛΕΚΤΡΟΝΙΚΗ ΔΙΕΥΘΥΝΣΗ", έτσι τα γράμματα αναγνωρίζονται από τις υπηρεσίες αλληλογραφίας.


Μεταξύ των μειονεκτημάτων αυτής της μεθόδου, αξίζει να σημειωθεί η αδυναμία "φόρτωσης" ενός πορτρέτου αλληλογραφίας τομέα, καθώς οι ίδιες οι υπηρεσίες αλληλογραφίας δεν παρέχουν ακόμη αυτήν τη λειτουργία.

2019-08-05

Γεια σου, αγαπητέ επισκέπτη!

Συγχωρέστε με για την καθυστέρηση στην ενημέρωση του ιστολογίου. Αλλά υπάρχει μια απολύτως κατανοητή εξήγηση για αυτό. Άλλωστε ήταν καλοκαίρι, η ντάκα, οι καλεσμένοι, το δάσος, το νερό και πολλά άλλα, που δεν μου επέτρεψαν να ασχοληθώ με τα θέματα δημιουργίας ιστοσελίδας. Αλλά τώρα ελευθερώθηκα λίγο, οι καλεσμένοι έφυγαν και νομίζω ότι τώρα σίγουρα θα μπορέσω να δώσω τη δέουσα προσοχή σε αυτό.

Αφού λοιπόν στο τελευταίο άρθρο συνδέσαμε το mail του domain μας σε μία από τις υπηρεσίες αλληλογραφίας, τώρα ας δούμε πώς μπορείτε να στείλετε email από τον ιστότοπο. Επιπλέον, με τέτοιο τρόπο ώστε οι επιστολές μας να μην καταλήγουν σε SPAM, αλλά να παραδίδονται αξιόπιστα, με μεγάλη πιθανότητα, στους παραλήπτες μας.

Γενικά, υπάρχει μια ενσωματωμένη συνάρτηση mail() για την αποστολή γραμμάτων στην PHP. Αλλά πρέπει να σημειωθεί ότι παρά την απλότητα αυτής της μεθόδου (στην περίπτωση αυτή, για να στείλετε γράμματα αρκεί να καθορίσετε μόνο μία γραμμή κώδικα με ορισμένες παραμέτρους), η χρήση αυτής της επιλογής έχει ένα σημαντικό μειονέκτημα που σχετίζεται με το πρόβλημα του SPAM .

Το γεγονός είναι ότι τα φίλτρα anti-SPAM των διακομιστών αλληλογραφίας από την πλευρά του παραλήπτη δεν ευνοούν πραγματικά τις επιστολές που αποστέλλονται μέσω της συνάρτησης mail(). Και στις περισσότερες περιπτώσεις, τέτοια μηνύματα φιλτράρονται ή ακόμη και διαγράφονται πριν φτάσουν στον παραλήπτη.

Και για να εξαλειφθούν όσο το δυνατόν περισσότερο τέτοιες περιπτώσεις, συνήθως χρησιμοποιείται μια άλλη επιλογή, στην οποία αποστέλλονται επιστολές σαν να έγιναν από υπηρεσία αλληλογραφίας τρίτων.

Αυτή η μέθοδος ονομάζεται αποστολή αλληλογραφίας μέσω SMTP με εξουσιοδότηση. Το οποίο θα εξετάσουμε σήμερα χρησιμοποιώντας το παράδειγμα υποβολής φόρμας ανατροφοδότηση. Επιπλέον, για αυτό θα χρησιμοποιήσουμε την αρκετά γνωστή και δημοφιλή βιβλιοθήκη PHPMailer, η οποία σας επιτρέπει να οργανώνετε πολύ απλά την αποστολή επιστολών μέσω SMTP.

  • Πώς θα στείλουμε επιστολές ανατροφοδότησης
  • Δημιουργία φόρμας σχολίων
  • Εγκατάσταση της βιβλιοθήκης PHPMailer
  • Δημιουργούμε ένα σενάριο για την αποστολή αλληλογραφίας μέσω SMTP
  • Έλεγχος αποστολής email
  • Αρχεία προέλευσης ιστότοπου

Πώς θα στείλουμε επιστολές ανατροφοδότησης

Πριν ξεκινήσεις πρακτική δουλειάΑφού στείλουμε επιστολές σχολίων, θα αποφασίσουμε πρώτα πώς θα το κάνουμε.

Η φόρμα σχολίων έχει σχεδιαστεί για να επιτρέπει στον χρήστη να επικοινωνεί με τον διαχειριστή του ιστότοπου για να μεταφέρει το μήνυμά του. Συνήθως, αυτή η φόρμα αποτελείται από πολλά πεδία και ένα κουμπί "Υποβολή".

Κατ' αρχήν, για να στείλετε ένα email αρκεί να χρησιμοποιήσετε μόνο μερικά πεδία που παρέχουν επαρκείς πληροφορίες για τον χρήστη και το περιεχόμενο του μηνύματος, όπως:

  • "Όνομα" - για να εισαγάγετε το όνομα του αποστολέα του μηνύματος.
  • "E-mail" - για τη διεύθυνση ΗΛΕΚΤΡΟΝΙΚΗ ΔΙΕΥΘΥΝΣΗαποστολέας;
  • "Θέμα μηνύματος";
  • "Κείμενο μηνύματος".

Αν και μπορείτε να προσθέσετε άλλα. Για παράδειγμα, έναν αριθμό τηλεφώνου, εάν αυτό είναι πραγματικά απαραίτητο.

Στην περίπτωσή μας, τέτοιες επιστολές θα σταλούν στη διεύθυνση του διαχειριστή του ιστότοπου από ένα πραγματικό γραμματοκιβώτιο με εξουσιοδότηση για την υπηρεσία αλληλογραφίας στην οποία είναι συνδεδεμένος ο τομέας μας.

Δεδομένου ότι στο προηγούμενο άρθρο εστιάσαμε στον έλεγχο της σύνδεσης αλληλογραφίας τομέα με την υπηρεσία Yandex.Mail, θα στείλουμε αλληλογραφία για αυτήν την επιλογή. Αν και αυτό δεν είναι σημαντικό. Παρακάτω θα δείτε εκείνες τις επιλογές που, όταν αλλάξουν, θα σας επιτρέψουν να στείλετε email μέσω διακομιστή αλληλογραφίας Mail.ru.

Ως πραγματικό γραμματοκιβώτιο από το οποίο θα αποστέλλονται επιστολές, θα χρησιμοποιήσουμε τον λογαριασμό ενός χρήστη ηλεκτρονικού ταχυδρομείου που δημιουργήθηκε πρόσφατα, ας πούμε με τη διεύθυνση [email προστατευμένο]. Και θα στείλουμε αυτές τις επιστολές σε Γραμματοκιβώτιοδιαχειριστής [email προστατευμένο], που δημιουργήσαμε προηγουμένως στο προηγούμενο άρθρο.

Έτσι, ο αποστολέας της επιστολής από τη φόρμα σχολίων θα είναι το γραμματοκιβώτιο [email προστατευμένο]., και ο παραλήπτης - [email προστατευμένο]. Σε αυτήν την περίπτωση, όλες οι πληροφορίες σχετικά με τον χρήστη που έστειλε το μήνυμα με το περιεχόμενό του θα μεταδοθούν στο σώμα της απεσταλμένης επιστολής.

Δημιουργία φόρμας σχολίων

Αφού αποφασίσουμε για τη διαδικασία αποστολής επιστολών, θα δημιουργήσουμε τώρα μια φόρμα σχολίων με την οποία θα το κάνουμε αυτό.

Παρακάτω είναι ο κώδικας HTML αυτής της φόρμας, τον οποίο θα τοποθετήσουμε στη σελίδα "Επαφές" (αρχείο kontakty.php στον κατάλογο άρθρων).

    "άρθρο" >

    Επαφές

    Ανατροφοδότηση

    "Επικοινωνία"δράση = "#" μέθοδος = "Θέση" >

    Φόρμα σχολίων

    Για όλες τις ερωτήσεις, αιτήματα και επιχειρηματικές προτάσεις, μπορείτε να επικοινωνήσετε μαζί μας χρησιμοποιώντας την παρακάτω φόρμα σχολίων.

    "μπλοκ επαφών" >

    "Εισαγωγή επαφής" >

    "κείμενο" id = "όνομα επαφής"όνομα = "όνομα επαφής"τίτλος = "Το όνομα πρέπει να είναι στα ρωσικά και να περιέχει τουλάχιστον 3 χαρακτήρες" μοτίβο = "{3,}" απαιτείται >

  1. "κενή επαφή" >

    "Εισαγωγή επαφής" >

    "ΗΛΕΚΤΡΟΝΙΚΗ ΔΙΕΥΘΥΝΣΗ" id = "email επικοινωνίας"όνομα = "email επικοινωνίας"απαιτείται >

  2. "θέμα επαφής" >

  3. "επαφή-σχόλιο" >

  4. "κουμπί επαφής" >

    "υποβάλλουν"όνομα = "κουμπί επαφής"αξία = "Στείλετε" >

Εικ.1 Κώδικας HTML της φόρμας ανάδρασης

Μπορείτε να δείτε πώς φαίνεται τελικά η φόρμα σχολίων που εμφανίζεται εδώ στο παρακάτω στιγμιότυπο οθόνης.

Ετσι απαιτούμενη φόρμαδημιουργήθηκε. Και τώρα μπορείτε να προχωρήσετε στα θέματα επεξεργασίας και αποστολής δεδομένων με τη μορφή μηνύματος email.

Εγκατάσταση της βιβλιοθήκης PHPMailer

Όπως αναφέρθηκε προηγουμένως, για την αποστολή αλληλογραφίας θα χρησιμοποιήσουμε τη βιβλιοθήκη PHPMailer, η οποία θα απλοποιήσει σημαντικά την αποστολή email μέσω Πρωτόκολλο SMTPμε εξουσιοδότηση για υπηρεσία αλληλογραφίας τρίτων.

Για να το εγκαταστήσετε πρέπει να κάνετε λήψη απαραίτητα αρχεία. Αυτό μπορεί να γίνει από την υπηρεσία ιστού GitHub χρησιμοποιώντας το Composer (ένας διαχειριστής εξάρτησης πακέτου για PHP). Ή απλά κατεβάστε τα απαραίτητα αρχεία με τον συνηθισμένο τρόπο.

στιγμιότυπο οθόνης 73

Παρακάτω είναι η ιστοσελίδα της υπηρεσίας GitHub, όπου επισημαίνεται ο σύνδεσμος για την κανονική λήψη της βιβλιοθήκης PHPMailer.

Εκτός, τελευταία έκδοσηΤο 6.0.7, το οποίο αποθηκεύτηκε τη στιγμή της σύνταξης αυτού του άρθρου, μπορείτε να το κατεβάσετε από το συνημμένο υλικό.

Σε κάθε περίπτωση, το αρχείο αρχειοθέτησης που προκύπτει θα πρέπει να αποσυσκευαστεί, μετά το οποίο ο εξαγόμενος φάκελος PHPMailer-master με όλα τα περιεχόμενά του θα πρέπει να τοποθετηθεί στη ρίζα του ιστότοπου. Ταυτόχρονα, για απλότητα, μπορείτε να το μετονομάσετε σε PHPMailer. Παρακάτω είναι τα περιεχόμενα του φακέλου PHPMailer που βρίσκεται στον ριζικό κατάλογο του ιστότοπου.

Έτσι εγκαταστήσαμε τη βιβλιοθήκη PHPMailer. Μετά από αυτό μπορούμε να αρχίσουμε να δημιουργούμε ένα σενάριο με το οποίο θα στέλνουμε μηνύματα email από τον ιστότοπό μας.

Δημιουργούμε ένα σενάριο για την αποστολή αλληλογραφίας μέσω SMTP

Για να συνθέσετε το σενάριο, αρκεί να χρησιμοποιήσετε τις συστάσεις για τη χρήση του PHPMailer που δίνονται στη σελίδα GitHub, τις οποίες χρησιμοποιούσαμε προηγουμένως για τη λήψη της βιβλιοθήκης.

Συγκεκριμένα, υποδεικνύουν ότι στην αρχή του σεναρίου απαιτείται η εισαγωγή κλάσεων PHPMailer στον παγκόσμιο χώρο ονομάτων. Και δίνονται συγκεκριμένες γραμμές αντίστοιχου κώδικα. Υπάρχουν επίσης παραδείγματα χρήσης των ιδιοτήτων και των μεθόδων του PHPMailer, συμπεριλαμβανομένης της επιλογής αποστολής αλληλογραφίας μέσω SMTP.

Αλλά αν αυτό δεν είναι αρκετό, τότε μπορείτε επίσης να χρησιμοποιήσετε την τεκμηρίωση, η οποία περιέχει μια περιγραφή όλων των ιδιοτήτων και των μεθόδων αυτής της βιβλιοθήκης.

στιγμιότυπο οθόνης 74

Παρακάτω είναι ο κωδικός σεναρίου για την αποστολή αλληλογραφίας από τη φόρμα σχολίων μέσω SMTP με εξουσιοδότηση. Όπου όλες οι γραμμές που σχετίζονται με το PHPMailer δίνονται με επεξήγηση και επισημαίνονται με ανοιχτόχρωμο φόντο.

Το υπόλοιπο μέρος, συμπεριλαμβανομένων θραυσμάτων που σχετίζονται με τη λήψη και την επεξεργασία δεδομένων από τη φόρμα, τα οποία έπρεπε να χρησιμοποιήσουμε προηγουμένως σε άλλους επεξεργαστές, υποδεικνύεται με σκούρο φόντο. Συζητήθηκαν λεπτομερώς νωρίτερα σε ένα άρθρο αφιερωμένο ειδικά στα θέματα απόκτησης και επαλήθευσης δεδομένων από μια φόρμα στην PHP. Όπου μιλήσαμε επίσης για την καθολική λειτουργία χρήστη για επικύρωση και επεξεργασία δεδομένων φόρμας check_symbol().

Θα τοποθετήσουμε αυτό το σενάριο στο ίδιο αρχείο kontakty.php στο οποίο δημιουργήσαμε προηγουμένως τη φόρμα σχολίων.

    //----Σενάριο για αποστολή αλληλογραφίας μέσω SMTP χρησιμοποιώντας PHPMailer----

    //Εισαγωγή κλάσεων PHPMailer στον καθολικό χώρο ονομάτων. Θα πρέπει να βρίσκονται στην κορυφή του σεναρίου, όχι μέσα στη συνάρτηση

    χρήση PHPMailer\PHPMailer\PHPMailer ;

    χρήση PHPMailer\PHPMailer\Exception ;

    αν (!αδειάζω($_POST["κουμπί επαφής" ])) (

    $name = $_POST["contact-name" ];

    $name = check_symbol ($name, "Name" , "1" , "/^+\z/iu" );

    $email = $_POST["contact-email" ];

    $email = check_symbol ($email, "E-mail" , "1" , "/^+@(+\.)+(2,6)\z/i");

    $subject = $_POST["contact-subject" ];

    $subject = check_symbol ($subject, "Subject Message" , "1" , "0" );

    $comment = $_POST["contact-comment" ];

    $comment = check_symbol ($comment, "Κείμενο μηνύματος", "1" , "0" );

    αν (!αδειάζω($GLOBALS["ειδοποίηση" ])) (

    $alert = "Τα δεδομένα της φόρμας δεν στάλθηκαν. Βρέθηκαν τα ακόλουθα σφάλματα:\n".$alert;

    περιλαμβάνω"alert.php" ;

    αλλού {

    //Σύνδεση της βιβλιοθήκης

    απαιτώ"PHPMailer/src/PHPMailer.php" ;

    απαιτώ"PHPMailer/src/Exception.php" ;

    απαιτώ"PHPMailer/src/SMTP.php" ;

    $mail = νέος PHPMailer(); //Αρχικοποίηση κλάσης

    $from = " [email προστατευμένο]" ; //Διεύθυνση ηλεκτρονικού ταχυδρομείου από την οποία αποστέλλεται η επιστολή

    $to = " [email προστατευμένο]" ; //Διεύθυνση του παραλήπτη

    $mail -> isSMTP(); //Χρησιμοποιήστε το πρωτόκολλο SMTP

    $mail -> Host = "smtp.yandex.ru" ; //Διεύθυνση διακομιστή αλληλογραφίας

    $mail -> SMTPAuth = αληθής ; //Ενεργοποίηση λειτουργίας εξουσιοδότησης

    $mail -> Όνομα χρήστη = " [email προστατευμένο]" ; //Σύνδεση από ένα email τομέα συνδεδεμένο με μια υπηρεσία ηλεκτρονικού ταχυδρομείου τρίτου μέρους (σε αυτήν την περίπτωση, Yandex.Mail)

    $mail -> Κωδικός πρόσβασης = "27MrDon89" ; //Κωδικός πρόσβασης για αλληλογραφία τομέα

    $mail -> SMTPSecure = "ssl" ; //Πρωτόκολλο κρυπτογράφησης

    $mail -> Port = "465" ; //Θύρα διακομιστή SMTP

    $mail -> CharSet = "UTF-8" ; //Κωδικοποίηση

    $mail -> setFrom ($from, "Διαχειριστής" ); //Διεύθυνση και όνομα του αποστολέα

    $mail -> addAddress ($to, "Administrator" ); //Διεύθυνση και όνομα παραλήπτη

    $mail -> isHTML ( αληθής ); //Ορισμός μορφής email σε HTML

    $mail -> Θέμα = "Υποβλήθηκε φόρμα σχολίων"; //Θέμα ηλεκτρονικού ταχυδρομείου (επικεφαλίδα)

    $mail -> Σώμα = "

    Ονομα αποστολέα: $name

    Η διευθυνση του αποστολεα: $email

    Θέμα μηνύματος: $θέμα

    Περιεχόμενο μηνύματος: $comment



    " ; //Περιεχόμενα μηνύματος

    $mail -> AltBody = "Κείμενο εναλλακτικής επιστολής"; //Εναλλακτικό email εάν το πρόγραμμα-πελάτη email δεν υποστηρίζει μορφή HTML

    $mail -> SMTPDbug = 0 ; //Ενεργοποίηση εντοπισμού σφαλμάτων SMTP: 0 - απενεργοποιημένο (για κανονική χρήση), 1 = μηνύματα πελάτη, 2 - μηνύματα πελάτη και διακομιστή

    αν($mail -> αποστολή()) (

    $alert = "Το μήνυμα στάλθηκε"; //Εξαγωγή ενός μηνύματος στο πλαίσιο διαλόγου του προγράμματος περιήγησης σχετικά με την επιτυχή αποστολή της επιστολής

    αλλού {

    $alert = "Σφάλμα, δεν είναι δυνατή η αποστολή email: ".$mail -> ErrorInfo ; //Εξαγωγή μηνύματος σφάλματος

    περιλαμβάνω"alert.php" ;

Εικ.5 Σενάριο για αποστολή email μέσω SMTP με εξουσιοδότηση

Όπως μπορείτε να δείτε, όλες οι γραμμές που σχετίζονται άμεσα με την αποστολή μηνύματος email, στις οποίες καθορίζονται οι απαραίτητες μέθοδοι και ιδιότητες, συνοδεύονται από σχόλια. Επομένως, δεν έχει νόημα να επαναλαμβανόμαστε, αλλά μπορούμε να σταθούμε μόνο σε ορισμένες από αυτές, οι οποίες όντως απαιτούν πρόσθετες εξηγήσεις, και συγκεκριμένα:

1. Λόγω του γεγονότος ότι η επιστολή αποστέλλεται από υπηρεσία αλληλογραφίας τρίτων, εδώ εφαρμόζονται οι ρυθμίσεις που αντιστοιχούν στον συγκεκριμένο διακομιστή SMTP. Σε αυτήν την περίπτωση, για την περίπτωση χρήσης του διακομιστή Yandex.Mail, εφαρμόζονται οι ακόλουθες τιμές ιδιοτήτων:

  • Ιδιοκτησία Πλήθος(θέση 28) - Διεύθυνση διακομιστή αλληλογραφίας με την τιμή smtp.yandex.ru.
  • Ιδιοκτησία SMTPSecure
  • Ιδιοκτησία Λιμάνι

Αυτές οι τιμές ιδιοτήτων ελήφθησαν από τη σελίδα Yandex.Help που εμφανίζεται στο παρακάτω στιγμιότυπο οθόνης.

Αλλά τέτοιες πληροφορίες μπορούν επίσης να ληφθούν από άλλους πόρους. Για να το κάνετε αυτό, απλώς εισαγάγετε το κατάλληλο ερώτημα σε μια μηχανή αναζήτησης, για παράδειγμα: "Διακομιστής Yandex smtp". Πού μπορείτε να βρείτε μεγάλο αριθμό αναφορών για αυτό το θέμα.

Με παρόμοιο τρόπο, οι τιμές των ρυθμίσεων μπορούν να ληφθούν από άλλους διακομιστές SMTP. Παρακάτω είναι ένα στιγμιότυπο οθόνης της σελίδας Βοήθειας Mail.ru, η οποία εμφανίζει τις ρυθμίσεις του διακομιστή SMTP της υπηρεσίας αλληλογραφίας Mail.ru.

Και έτσι, στην περίπτωση χρήσης του Mail.ru ως διακομιστή SMTP τρίτου μέρους, θα πρέπει να εφαρμοστούν οι ακόλουθες τιμές των ιδιοτήτων της κλάσης PHPMailer:

  • Ιδιοκτησία Πλήθος(θέση 28) - Διεύθυνση διακομιστή αλληλογραφίας (smtp.mail.ru);
  • Ιδιοκτησία SMTPSecure(θέση 32) - Πρωτόκολλο κρυπτογράφησης (ssl);
  • Ιδιοκτησία Λιμάνι(θέση 33) - Θύρα διακομιστή SMTP (465).

Μια παρόμοια προσέγγιση θα πρέπει να εφαρμοστεί και σε άλλες υπηρεσίες ηλεκτρονικού ταχυδρομείου.

2. Σε ιδιοκτησία Όνομα χρήστη(θέση 30) είναι απαραίτητο να υποδείξετε την πλήρη διεύθυνση του γραμματοκιβωτίου τομέα. Σε αυτήν την περίπτωση, " [email προστατευμένο]".

Ωστόσο, εάν χρησιμοποιείτε έναν λογαριασμό διαφορετικό από έναν λογαριασμό αλληλογραφίας τομέα για την αποστολή επιστολών, αλλά μια διεύθυνση που σχετίζεται άμεσα με την υπηρεσία αλληλογραφίας, για παράδειγμα " [email προστατευμένο]", τότε η σύνδεση θα πρέπει να είναι μόνο το μέρος της διεύθυνσης μέχρι το σύμβολο "@". Σε αυτήν την περίπτωση, η σύνδεση θα έχει την τιμή "feedback".

3. Το PHPMailer παρέχει μια ιδιότητα Σφάλμα SMTPD(θέση 50), που σας επιτρέπει να εμφανίζετε διαφορετικά επίπεδα σφαλμάτων στην οθόνη του προγράμματος περιήγησης. Αυτή η δυνατότητα απλοποιεί σημαντικά την εύρεση προβλημάτων κατά τον εντοπισμό σφαλμάτων ενός σεναρίου.

Συνήθως, σε κανονική λειτουργία, με την τιμή ρυθμισμένη στο 0, η έξοδος λεπτομερών πληροφοριών σφάλματος είναι απενεργοποιημένη. Ωστόσο, εάν προκύψουν προβλήματα με την αποστολή αλληλογραφίας ή κατά τη διάρκεια του εντοπισμού σφαλμάτων, είναι δυνατό να χρησιμοποιηθούν άλλες τιμές για την εμφάνιση πιο ουσιαστικών πληροφοριών σχετικά με το σφάλμα.

Για να δούμε πώς φαίνεται αυτό στην πράξη, ας εισάγουμε προσωρινά κάποιο σφάλμα στις ρυθμίσεις. Για παράδειγμα, στον κωδικό πρόσβασης αλληλογραφίας τομέα (ιδιότητα Κωδικός πρόσβασης, θέση 31). Και επίσης για να εμφανίσετε λεπτομερείς πληροφορίες σχετικά με το σφάλμα, που έχει οριστεί προσωρινά στην ιδιοκτησία Σφάλμα SMTPD(θέση 50) τιμή 1. Μετά, όταν τα πάντα διορθωθούν και ελεγχθούν, θα απενεργοποιήσουμε τη λειτουργία εντοπισμού σφαλμάτων SMTP, αντικαθιστώντας το 1 με το 0.

Στο τελευταίο μέρος του σεναρίου, αφού καθορίσετε όλες τις απαραίτητες ιδιότητες και μεθόδους, χρησιμοποιείται η μέθοδος για την αποστολή της επιστολής στείλετε()) (θέση 51). Και αν αποσταλεί η επιστολή, και η μέθοδος στείλετε()για αντικείμενο $mailεπιστρέφει true και, στη συνέχεια, στο παράθυρο διαλόγου του προγράμματος περιήγησης μέσω της μεταβλητής $alertΘα εμφανιστεί ένα μήνυμα σχετικά με την επιτυχή αποστολή αλληλογραφίας (θέση 52).

Εάν, για κάποιο λόγο, δεν ήταν δυνατή η αποστολή της αλληλογραφίας και, κατά συνέπεια, η μέθοδος δεν μπορούσε να επιστρέψει true, τότε αυτή η κατάσταση θα συνοδεύεται από ένα αντίστοιχο μήνυμα σφάλματος (θέση 55).

Έλεγχος αποστολής email

Αφού δημιουργήσουμε ένα σενάριο για την αποστολή αλληλογραφίας, φυσικά, πρέπει να δούμε το αποτέλεσμα της «δημιουργικότητάς» μας. Τα λάβαμε όλα υπόψη εδώ και δεν κάναμε λάθη;

Για να γίνει αυτό, ας προσπαθήσουμε, όπως προβλέπεται, να στείλουμε ένα μήνυμα από τον χρήστη στον διαχειριστή του ιστότοπου από τη φόρμα σχολίων. Ακολουθεί ένα στιγμιότυπο οθόνης της φόρμας σχολίων με τα πεδία συμπληρωμένα πριν από την υποβολή της.

Και εδώ είναι το αποτέλεσμα της υποβολής της φόρμας.

Όπου, από το μήνυμα στο παράθυρο διαλόγου του προγράμματος περιήγησης, είναι σαφές ότι η επιστολή δεν μπορεί να σταλεί λόγω προβλήματος με τη σύνδεση SMTP.

Όμως, από τώρα το ακίνητο Σφάλμα SMTPD(θέση 50) εκχωρείται η τιμή 1, τότε μπορούμε να δούμε λεπτομερείς πληροφορίες σχετικά με το σφάλμα που προέκυψε και να μάθουμε τον λόγο της εμφάνισής του.

Το παρακάτω στιγμιότυπο οθόνης δείχνει ότι κατά την προσπάθεια σύνδεσης, εντοπίστηκε σφάλμα ελέγχου ταυτότητας, που σημαίνει τη χρήση εσφαλμένης σύνδεσης ή κωδικού πρόσβασης.

Μετά την εξάλειψη της αναντιστοιχίας κωδικού πρόσβασης (προηγουμένως χρησιμοποιήθηκε λανθασμένος κωδικός πρόσβασης για να μπορέσουμε να ελέγξουμε την έξοδο πρόσθετων πληροφοριών σχετικά με το σφάλμα), θα προσπαθήσουμε να στείλουμε ξανά την αλληλογραφία.

Αυτή τη φορά όλα φαινόταν να πηγαίνουν καλά και λάβαμε ένα μήνυμα ότι το mail στάλθηκε με επιτυχία. Προφανώς, εκτός από το σκόπιμα καταχωρημένο προσωρινό σφάλμα στον κωδικό πρόσβασης αλληλογραφίας τομέα, δεν κάναμε άλλα λάθη.

Αλλά για να βεβαιωθούμε ότι η επιστολή παραδόθηκε στον παραλήπτη, ας εισαγάγουμε την αλληλογραφία με τη διεύθυνση [email προστατευμένο]και δες το αποτέλεσμα.

Όπως μπορείτε να δείτε, η επιστολή από τη διεύθυνση [email προστατευμένο], από το οποίο στείλαμε ένα μήνυμα ηλεκτρονικού ταχυδρομείου με το όνομα "Σχόλια" έφτασε με επιτυχία στον διαχειριστή του ιστότοπου. Ταυτόχρονα, το σώμα της επιστολής περιέχει όλο το περιεχόμενο που δημιουργήσαμε στο σενάριο χρησιμοποιώντας δεδομένα που ελήφθησαν από τη φόρμα σχολίων, και συγκεκριμένα:

  • Όνομα αποστολέα: Nikolay;
  • Η διευθυνση του αποστολεα: [email προστατευμένο];
  • Θέμα μηνύματος: Έλεγχος αποστολής αλληλογραφίας.
  • Περιεχόμενο μηνύματος: Δοκιμαστικό μήνυμα.

Τώρα, αφού ελέγξετε με επιτυχία την αποστολή αλληλογραφίας, μπορείτε να απενεργοποιήσετε τη λειτουργία εντοπισμού σφαλμάτων SMTP εκχωρώντας την ιδιότητα Σφάλμα SMTPD(θέση 50) τιμή 0.

Έτσι, ολοκληρώσαμε την εργασία δημιουργίας ενός εργαλείου για την αποστολή αλληλογραφίας μέσω SMTP με εξουσιοδότηση χρησιμοποιώντας διακομιστή αλληλογραφίας τρίτου κατασκευαστή.

Για παράδειγμα, στο επόμενο άρθρο, θα εξετάσουμε τον τρόπο αποστολής μηνυμάτων ηλεκτρονικού ταχυδρομείου επιβεβαίωσης για την ανάκτηση των καταχωρημένων δεδομένων λογαριασμού χρήστη.

Αρχεία προέλευσης ιστότοπου

Μπορείτε να κατεβάσετε τα αρχεία πηγής του ιστότοπου με τις ενημερώσεις που έγιναν σε αυτό το άρθρο από το συνημμένο πρόσθετο υλικό:

  • www αρχεία καταλόγου
  • Πίνακες βάσεων δεδομένων MySQL

Η αποστολή αλληλογραφίας μέσω SMTP από έναν τοπικό διακομιστή σάς επιτρέπει να δοκιμάσετε την αποστολή μηνυμάτων από έναν ιστότοπο που βρίσκεται σε ένα τοπικό μηχάνημα ή πιο απλά, έναν τοπικό διακομιστή. Για να το κάνετε αυτό, μπορείτε να χρησιμοποιήσετε οποιαδήποτε υπηρεσία αλληλογραφίας Yandex, Google ή mail.ru.

Πρώτα απ 'όλα, το SMTP (Simple Mail Transfer Protocol) είναι ένα ευρέως χρησιμοποιούμενο πρωτόκολλο δικτύου σχεδιασμένο για τη μετάδοση email μέσω δικτύων TCP/IP. Και όλες οι δημοφιλείς υπηρεσίες email έχουν τέτοια πρωτόκολλα.

Με την εμφάνιση των τοπικών διακομιστών, δεν υπήρχε πλέον καμία ανάγκη να επιλέξετε έναν πάροχο φιλοξενίας για να ελέγξετε την απόδοση μεμονωμένων σεναρίων ή συστημάτων cms, πολύ λιγότερο να πληρώσετε για αυτό. Είναι πολύ πιο εύκολο να δοκιμάσετε τα πάντα σε έναν υπολογιστή και, στη συνέχεια, μπορείτε να δείξετε σε όλους τι έχετε «κάνει».

Πολλοί από αυτούς τους διακομιστές διαθέτουν ήδη ενσωματωμένο λογισμικό και τις απαραίτητες λειτουργίες για εργασία με αλληλογραφία, απλά πρέπει να το ρυθμίσετε σωστά.

Για να ελέγξετε τη λειτουργικότητα μιας τέτοιας αλληλογραφίας, απαιτείται το ελάχιστο:

  • Μπορείτε να χρησιμοποιήσετε το Openserver ως τοπικό διακομιστή.
  • Και ένα απλό σενάριο, το πρότυπο του οποίου μπορείτε να βρείτε ακριβώς από κάτω.
  • Μπορείτε να χρησιμοποιήσετε οποιονδήποτε διακομιστή αλληλογραφίας.

Αποστολή αλληλογραφίας php μέσω ρύθμισης σεναρίου SMTP

Ένα απλό πρότυπο σεναρίου που μπορεί να αντιγραφεί παρακάτω ή να ληφθεί από εκατοντάδες παρόμοιους ιστότοπους, πρέπει να επεξεργαστεί.

Πρώτα, πρέπει να αλλάξετε ορισμένες τιμές στο πρότυπο σεναρίου.
προς την — αλλάξτε την ταχυδρομική διεύθυνση όπου θα σταλεί το μήνυμα αλληλογραφίας.
θέμα - θέμα επιστολής
μήνυμα — το ίδιο το μήνυμα ή το σώμα της επιστολής.

Παράδειγμα του σεναρίου μου:

Μπορείτε, φυσικά, να επεκτείνετε λίγο τη λειτουργικότητα και να κάνετε το σενάριο να εμφανίζει ένα μήνυμα σχετικά με την αποστολή αλληλογραφίας. Αν και στην πραγματικότητα είναι ο διακομιστής SMTP που κάνει την αποστολή, και το σενάριο δημιουργεί μόνο το μήνυμα.

Για παράδειγμα, μπορείτε να γράψετε αυτό:

Όλες οι αντικατασταθείσες τιμές πρέπει να είναι σε εισαγωγικά, διαφορετικά το σενάριο θα εμφανίσει σφάλμα. Μετά από αυτό, μπορείτε να αποθηκεύσετε το σενάριο στον φάκελο του τοπικού διακομιστή.

Για παράδειγμα: domains/send/index.phpκαι ξεκινήστε τη ρύθμιση της αποστολής αλληλογραφίας μέσω SMTP opensrerver.

Η αλληλογραφία θα φτάσει σε οποιαδήποτε διεύθυνση που θα καθοριστεί στο σενάριο αντί για την τιμή 'προς την' , αλλά αυτό το mail θα υποβληθεί σε επεξεργασία και θα σταλεί ακριβώς από το SMTP που θα καθοριστεί στις ρυθμίσεις του openserver.

  1. Εκκίνηση του διακομιστή
  2. Ανοίξτε τη μονάδα openserver με ρυθμίσεις στο μενού "mail".
  3. Συμπληρώνουμε όλα τα πεδία όπως φαίνεται στην εικόνα, ενώ αντικαθιστούμε το όνομα χρήστη, το e-mail του αποστολέα και τον κωδικό πρόσβασης από ένα πραγματικό γραμματοκιβώτιο Yandex.

Αποθηκεύουμε τις ρυθμίσεις και μετά την επανεκκίνηση του διακομιστή, μπορείτε να αποκτήσετε πρόσβαση στο ίδιο το σενάριο. Από το φάκελο "My Sites", ανοίξτε το φάκελο "send" στον οποίο βρίσκεται το προηγουμένως αποθηκευμένο σενάριο index.php.

Μόλις γίνει πρόσβαση σε αυτό το σενάριο, θα εμφανιστούν πληροφορίες σε ένα νέο παράθυρο του προγράμματος περιήγησης που υποδεικνύει ότι το σενάριο έχει ολοκληρωθεί.

Μετά από αυτό, θα πρέπει να ελέγξετε το γραμματοκιβώτιό σας, η διεύθυνση του οποίου καθορίστηκε στο σενάριο, για να δείτε αν έχει φτάσει το γράμμα.

Εάν δεν υπάρχει, σημαίνει ότι κάτι δεν έχει ρυθμιστεί σωστά ή ότι το γράμμα κατέληξε στο φάκελο ανεπιθύμητης αλληλογραφίας.

Όλες οι άλλες ρυθμίσεις φαίνονται παρόμοιες, αλλά σε κάθε περίπτωση, οι πρόσθετες πληροφορίες δεν θα βλάψουν.

Για να ρυθμίσετε την αποστολή αλληλογραφίας μέσω SMTP mail ru, πρέπει απλώς να αντικαταστήσετε τις παραμέτρους Yandex με παραμέτρους mail ru.

Και για να μην δημιουργείτε ξανά τον τοπικό διακομιστή κάθε φορά, είναι καλύτερο να διαμορφώνετε διαφορετικά προφίλ openserver. Πώς να το κάνετε αυτό φαίνεται στο εκπαιδευτικό βίντεο.

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

Για κάθε προφίλ (δεν έχει καμία σημασία πώς θα ονομαστεί), πρέπει να γίνουν οι δικές του ρυθμίσεις, εκτός αν, φυσικά, σκοπεύετε να χρησιμοποιήσετε σενάρια, συστήματα cms και εφαρμογές με διαφορετικές παραμέτρους.
Εάν όχι, τότε μπορείτε να τα βγάλετε πέρα ​​με τις προεπιλεγμένες ρυθμίσεις.

Όσο για το SMTP mail ru, όλα είναι πανομοιότυπα εδώ.

Τα δεδομένα Yandex αλλάζουν σε δεδομένα αλληλογραφίας ru

Αποστολή αλληλογραφίας μέσω smtp google

Για να ρυθμίσετε την αποστολή αλληλογραφίας μέσω Google SMTP, χρειάζεται λίγη προσπάθεια.

Πρώτον, η δημιουργία προφίλ στο Google είναι πιο δύσκολη από ό,τι σε άλλα συστήματα Yandex και mail ru
Δεύτερον, το σύστημα δεν θα αφήσει απλώς την επιστολή να περάσει, ακόμα κι αν παρέχετε τα στοιχεία σύνδεσής σας. Αρχικά, θα στείλει μια επιστολή που θα περιέχει όλες τις απαραίτητες πληροφορίες σχετικά με περαιτέρω οδηγίες.

Σε διαφορετική περίπτωση Για την Google έχει ρυθμιστεί ακριβώς με τον ίδιο τρόπο. Αλλάζουν μόνο όλα τα δεδομένα.

Για να διαμορφώσετε την αποστολή αλληλογραφίας μέσω άλλου SMTP, όλα τα δεδομένα θα είναι περίπου τα ίδια.

Εάν όλα λειτούργησαν για εσάς και τα γράμματα έφτασαν στον καθορισμένο παραλήπτη, τότε όλα έγιναν σωστά. Θα ήταν υπέροχο να μοιραστείτε τις εμπειρίες σας στα σχόλια.

Προκειμένου ένας συγκεκριμένος ιστότοπος να έχει τη δυνατότητα να λειτουργεί αποτελεσματικά και παραγωγικά, η δημιουργία του θα πρέπει να προσεγγίζεται όσο το δυνατόν πιο υπεύθυνα και προσεκτικά. Η επιλογή του συστήματος που θα χρησιμοποιηθεί για τη δημιουργία ενός ηλεκτρονικού καταστήματος αξίζει ιδιαίτερης προσοχής. Γεγονός είναι ότι μια εμπορική πλατφόρμα που ειδικεύεται στην πώληση αγαθών ή υπηρεσιών πρέπει να επιτρέπει την εφαρμογή όλων των απαραίτητων λειτουργιών και να είναι εύχρηστη, τόσο για διαχειριστές που συμμετέχουν στη συντήρηση και πλήρωση ιστότοπων όσο και για πελάτες ηλεκτρονικών καταστημάτων. Πολλοί άνθρωποι και εταιρείες που αντιμετωπίζουν το ζήτημα της επιλογής ενός κατάλληλου CMS για τον εαυτό τους αναλύουν εάν θα επιλέξουν το Magento ή το OkayCMS. Ας συγκρίνουμε τα χαρακτηριστικά και τις δυνατότητες αυτών των μηχανών ιστοτόπων.

Όταν εργάζεστε στον δικό σας ιστότοπο, ένα άτομο ή μια εταιρεία θα πρέπει να καταβάλει μεγάλη προσπάθεια - μόνο σε αυτήν την περίπτωση μπορείτε να βασιστείτε σε θετικά αποτελέσματα και να αποκτήσετε ένα πραγματικά αποτελεσματικό εργαλείο. Ένα από τα θεμελιώδη ερωτήματα που πρέπει να επιλυθούν ακόμη και πριν ξεκινήσετε τη δημιουργία ενός ιστότοπου θα είναι πώς να αποφασίσετε για την καταλληλότερη επιλογή CMS. Στη συνέχεια, θα συγκρίνουμε δύο CMS: Joomla ή OkayCMS και θα δώσουμε προσοχή στα χαρακτηριστικά καθενός από αυτά.

Η κατοχή του δικού σας ιστότοπου είναι μια από τις θεμελιώδεις απαιτήσεις για μια αποτελεσματική, επιτυχημένη επιχείρηση. Οι στατιστικές δείχνουν ξεκάθαρα αύξηση του αριθμού των αγορών διαφόρων αγαθών και παραγγελιών υπηρεσιών μέσω Διαδικτύου. Λαμβάνοντας αυτό υπόψη, οι περισσότερες εμπορικές εταιρείες γνωρίζουν ήδη την ανάγκη να έχουν τη δική τους ιστοσελίδα. Ωστόσο, το γεγονός και μόνο της ύπαρξης ενός πόρου Διαδικτύου δεν αρκεί για να υπολογίζουμε στην αποτελεσματικότητα, την κερδοφορία και τα αναμενόμενα επιχειρηματικά οφέλη.

Όταν προετοιμάζεστε να δημιουργήσετε τη δική σας ιστοσελίδα ή να ανοίξετε ένα ηλεκτρονικό κατάστημα, πρέπει να λάβετε υπόψη και να αναλύσετε πολλά ζητήματα, καθώς και να λύσετε διάφορα προβλήματα. Μόνο σε αυτή την περίπτωση μπορείτε να βασιστείτε στο γεγονός ότι το έργο σας θα φέρει θετικά αποτελέσματα και θα μπορέσετε να ανταποκριθείτε πλήρως στις προσδοκίες σας. Μεταξύ των διαφόρων θεμάτων που σχετίζονται με την ανάπτυξη ενός ηλεκτρονικού καταστήματος, το θέμα της επιλογής ενός CMS αξίζει ιδιαίτερης προσοχής. Για να σας διευκολύνει να αποφασίσετε για τον βέλτιστο κινητήρα για τον εαυτό σας, εντός

Όταν σχεδιάζετε να δημιουργήσετε τον δικό τους ιστότοπο για ένα μελλοντικό ηλεκτρονικό κατάστημα, ένας αρκετά μεγάλος αριθμός ανθρώπων, ακόμη και εταιρείες που ειδικεύονται στις πωλήσεις, αντιμετωπίζουν μια δύσκολη και εξαιρετικά σημαντική επιλογή: ποιο από τα υπάρχοντα CMS να επιλέξουν. Εάν σκέφτεστε τι να επιλέξετε: PrestaShop ή OkayCMS, σας προτείνουμε να διαβάσετε αυτό το άρθρο, στο οποίο θα συγκρίνουμε αυτά τα δύο συστήματα για τη δημιουργία τοποθεσιών στο Διαδίκτυο, ιδίως ηλεκτρονικών καταστημάτων.

Δεδομένου ότι η αποστολή ανώνυμων μηνυμάτων από εικονικούς διακομιστές φιλοξενίας Windows απαγορεύεται, η αποστολή επιστολών θα πρέπει να γίνεται μέσω διακομιστή SMTP, για τον οποίο είναι επίσης δυνατή η χρήση του συστήματος αλληλογραφίας μας.

Πώς να στείλετε email χρησιμοποιώντας PHP;

Χρήση οποιασδήποτε κλάσης PHP που υποστηρίζει εξουσιοδότηση στον διακομιστή smtp. Για παράδειγμα, μπορείτε να χρησιμοποιήσετε το σύνολο κλάσεων PHPMailer.

Μπορείτε επίσης να χρησιμοποιήσετε το παράδειγμά μας, το οποίο υλοποιεί την αποστολή επιστολών χρησιμοποιώντας έναν διακομιστή smtp, ο οποίος απαιτεί εξουσιοδότηση. Επομένως, μην ξεχάσετε να προσθέσετε τις κατάλληλες λεπτομέρειες πρόσβασης στο σενάριο, για παράδειγμα:

// Εάν χρειάζεται να εμφανίσετε το αρχείο καταγραφής περιόδου σύνδεσης SMTP, μπορείτε να αφαιρέσετε το σχόλιο της ακόλουθης γραμμής. // $_SERVER ["debug"] = true;συνάρτηση MailSmtp ($reciever, $subject, $content, $headers, $debug = 0) ( $smtp_server = "smtp.site"; // Διεύθυνση διακομιστή SMTP$smtp_port = 25 ; // Θύρα διακομιστή SMTP$smtp_user = " [email προστατευμένο]" ; // Όνομα χρήστη για εξουσιοδότηση στον διακομιστή SMTP$smtp_password = "pAsSwORd" ; // Κωδικός πρόσβασης για εξουσιοδότηση στον διακομιστή SMTP$mail_from = " [email προστατευμένο]" ; // Γραμματοκιβώτιο από το οποίο αποστέλλεται η επιστολή$sock = fsockopen ($smtp_server, $smtp_port, $errno, $errstr, 30); $str = fgets ($sock, 512); if (! $sock ) ( printf ( "Η υποδοχή δεν δημιουργήθηκε\n" ); exit(1 ); ) smtp_msg ($sock , "HELO " . $_SERVER [ "SERVER_NAME" ]); smtp_msg($sock, "ΣΥΝΔΕΣΗ ΑΠΘ"); smtp_msg ($sock, base64_encode ($smtp_user)); smtp_msg ($sock, base64_encode ($smtp_password)); smtp_msg ($sock , "MAIL FROM:<" . $mail_from . ">" ); smtp_msg ($sock , "RCPT ΠΡΟΣ:<" . $reciever . ">" ); smtp_msg ($sock , "DATA"); $headers = "Θέμα: " . $subject . "\r\n" . $headers ; $data = $headers. "\r\n\r\n" . $content . "\r\n." ; smtp_msg ($sock , $data ); smtp_msg ($sock , "QUIT" ); fclose ($sock ); ) συνάρτηση smtp_msg ($sock , $msg ) ( if ( ! $sock ) ( printf ("Broken socket!\n" ); exit(1 ); ) if (isset($_SERVER [ "debug" ]) && $_SERVER [ "debug" ]) ( printf ( "Send from us : %s
" , nl2br (htmlspecialchars ($msg )); ) fputs ($sock , " $msg \r\n" ); $str = fgets ($sock , 512 ); if (! $sock ) ( printf ( "Socket is down\n" ); exit(1); ) else (if (isset($_SERVER [ "debug" ]) && $_SERVER [ "debug" ]) ( printf ("Got from server: %s
" , nl2br (htmlspecialchars ($str )); ) $e = explode (" " , $str ); $code = array_shift ($e ); $str = implode ( " " , $e ); εάν ($code > 499 ) ( printf ( "Προβλήματα με τη συνομιλία SMTP.

Κωδικός %d.
Μήνυμα %s
"
, $code , $str ); exit(1); ) ) ) ?>

Κατεβάστε ένα παράδειγμα έτοιμου σεναρίου με τη συνάρτηση MailSmtp(): smtpauth.php.sample

Μπορείτε να χρησιμοποιήσετε τη συνάρτηση MailSmtp() που περιγράφεται παραπάνω για να αντικαταστήσετε απευθείας τη συνάρτηση mail(). Εξετάστε ένα παράδειγμα της απλούστερης φόρμας στην PHP:

// Κεφαλίδες μηνυμάτων, ορίζουν την κωδικοποίηση του μηνύματος, τα πεδία Από, Προς κ.λπ.$headers = "MIME-Έκδοση: 1.0\r\n" ; $headers .= "Τύπος περιεχομένου: text/html; charset=windows-1251\r\n"; $headers .= "Προς: $to \r\n" ; $headers .= "Από: Όνομα αποστολέα " ; // αλληλογραφία ($to, $subject, $message, $headers); require_once "smtpauth.php" ; MailSmtp ($to, $subject, $message, $headers); ) ?>
Σε ποιον: Θέμα: Κείμενο: 
 
 

Για να λειτουργήσει αυτή η φόρμα χωρίς τη συνάρτηση mail(), συμπεριλάβαμε το αρχείο smtpauth.php μέσω του require_once και καλέσαμε τη συνάρτηση MailSmtp() που περιγράφεται σε αυτήν με ορίσματα παρόμοια με το mail(). Ταυτόχρονα, σχολιάσαμε την κλήση mail() στον κώδικα για να αποφύγουμε σφάλματα κατά την εκτέλεση του σεναρίου.

Πώς να στείλετε email χρησιμοποιώντας το ASP.NET;

Εάν χρησιμοποιείτε την έκδοση 2.0, τότε χρησιμοποιείτε την κλάση MailMessage System.Net.Mail), περιγράφεται καλά.

Ακολουθούν παραδείγματα χρήσης του για τις γλώσσες C# και VisualBasic:

Παράδειγμα για τη γλώσσα C#:

<% @Page Language="c#" %> <% @Import Namespace="System.Net.Mail" %> <% @Import Namespace="System.Net" %> <% MailMessage message = new MailMessage(); // δημιουργία νέου γράμματος message.To.Add(" [email προστατευμένο]"); // Προσθήκη διεύθυνσης παραλήπτη message.From = new MailAddress("from@ domain.tld", "Ονομα αποστολέα"); // προσδιορίζοντας το όνομα και τη διεύθυνση του αποστολέα message.Subject = "Θέμα μηνύματος"; // προσδιορίζοντας το θέμα της επιστολής message.BodyEncoding = System.Text.Encoding.UTF8; // καθορίζοντας την κωδικοποίηση του γράμματος message.IsBodyHtml = false; // καθορίζοντας τη μορφή του γράμματος (true - HTML, false - not HTML) message.Body = "Κείμενο μηνύματος"; // προσδιορίζοντας το κείμενο (σώμα) του γράμματος SmtpClient client = new SmtpClient("smtp.site",25); // δημιουργία νέας σύνδεσης με τον διακομιστή "smtp.site" client.DeliveryMethod = SmtpDeliveryMethod.Network; // ορίζει τη μέθοδο για την αποστολή μηνυμάτων client.EnableSsl = false; // απενεργοποιεί την ανάγκη χρήσης ασφαλούς σύνδεσης με τον διακομιστή client.UseDefaultCredentials = false; // απενεργοποιήστε τη χρήση των προεπιλεγμένων λεπτομερειών εξουσιοδότησης client.Credentials = new NetworkCredential("postmaster@ domain.tld", "***Κωδικός πρόσβασης***"); // καθορίζοντας τις απαραίτητες λεπτομέρειες (όνομα χρήστη και κωδικό πρόσβασης) για εξουσιοδότηση στον διακομιστή SMTP client.Send(message); // να στείλετε μήνυμα %>

Κατεβάστε ένα παράδειγμα ολοκληρωμένης φόρμας που δείχνει τη χρήση αυτής της μεθόδου: MailForm.aspx.

Παράδειγμα για τη γλώσσα VisualBasic:

<% @Page Language="VB" Debug="true" %> <% @Import Namespace="System.Net.Mail" %> <% @Import Namespace="System.Net" %> <% Dim smtpMssg AS new MailMessage smtpMssg.From = New MailAddress ("admin@domain.tld", "Sender_name") smtpMssg.To.Add (" [email προστατευμένο]") " Προσθήκη διεύθυνσης παραλήπτη smtpMssg.Subject = "Θέμα email" «αναφορά του θέματος της επιστολής smtpMssg.Body = "Κείμενο μηνύματος" " ένδειξη του κειμένου (σώμα) της επιστολής smtpMssg.BodyEncoding = System.Text.Encoding.UTF8 " Ένδειξη της κωδικοποίησης του γράμματος smtpMssg.IsBodyHtml = ψευδής " ένδειξη της μορφής γράμματος (true - HTML, false - not HTML) Dim SmtpMail As New SmtpClient("smtp.site", 25) " δήλωση ενός νέου αντικειμένου τύπου "SmtpClient" SmtpMail.DeliveryMethod = SmtpDeliveryMethod.Network «αναφορά του τρόπου παράδοσης της επιστολής SmtpMail.UseDefaultCredentials = False "απενεργοποίηση της χρήσης των διαπιστευτηρίων εξουσιοδότησης από προεπιλογή" SmtpMail.EnableSsl = False " απενεργοποιεί την ανάγκη χρήσης ασφαλούς σύνδεσης με τον διακομιστή SmtpMail.Credentials = new NetworkCredential("postmaster@ domain.tld", "***Κωδικός πρόσβασης***") υποδεικνύοντας τα απαραίτητα στοιχεία (όνομα χρήστη και κωδικό πρόσβασης) για εξουσιοδότηση στον διακομιστή SMTP SmtpMail.Send(smtpMssg) " στέλνοντας ένα μήνυμα %>

Υπάρχει επίσης μια κλάση SmtpMail που έχει καταργηθεί (και έχει καταργηθεί) (χρησιμοποιώντας τον χώρο ονομάτων System.Web.Mail). Παρακάτω είναι ένα παράδειγμα χρήσης του για τη γλώσσα VisualBasic:

<% @Page Language="VB" Debug="true" %> <% @Import Namespace="System.Web" %> <% @Import Namespace="System.Web.Mail" %> <% Dim smtpMssg = new MailMessage " δήλωση ενός νέου αντικειμένου τύπου "MailMessage" smtpMssg.From = "Όνομα_αποστολέα domain.tld>" «Αναφορά του ονόματος και της διεύθυνσης του αποστολέα smtpMssg.To = "admin@ domain.tld" " ένδειξη της διεύθυνσης του παραλήπτη smtpMssg.BodyFormat = Μορφή αλληλογραφίας.Κείμενο " Ένδειξη της μορφής του γράμματος smtpMssg.BodyEncoding = Encoding.UTF8 "που υποδεικνύει την κωδικοποίηση του γράμματος smtpMssg.Subject = "Θέμα email" «αναφορά του θέματος της επιστολής smtpMssg.Body = "Κείμενο μηνύματος" " ένδειξη του κειμένου της επιστολής smtpMssg.Fields.Add("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate",1) "υποδεικνύει την ανάγκη για εξουσιοδότηση SMTP στον διακομιστή smtpMssg.Fields.Add("http://schemas.microsoft.com/cdo/configuration/sendusername", "admin@ domain.tld") "όνομα χρήστη για εξουσιοδότηση smtpMssg.Fields.Add("http://schemas.microsoft.com/cdo/configuration/sendpassword", "***password***") "κωδικός πρόσβασης για εξουσιοδότηση SmtpMail.SmtpServer = "smtp.site" "καθορίζοντας τη διεύθυνση διακομιστή SMTP SmtpMail.Send(smtpMssg) " στέλνοντας ένα μήνυμα %>

Πώς να στείλετε email χρησιμοποιώντας ASP;

Λάβετε υπόψη ότι όταν χρησιμοποιείτε τον διακομιστή smtp, απαιτείται εξουσιοδότηση, επομένως μην ξεχάσετε να προσθέσετε τις κατάλληλες λεπτομέρειες πρόσβασης στο σενάριο, για παράδειγμα:

<% iConfig = Server.CreateObject("CDO.Configuration") Set iConfig = Server.CreateObject("CDO.Configuration") With iConfig.Fields .Item("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "smtp.сайт" .Item("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25 .Item("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2 .Item("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = 1 .Item("http://schemas.microsoft.com/cdo/configuration/languagecode") = "ru" .Item("http://schemas.microsoft.com/cdo/configuration/sendusername") = "postmaster@domain.tld" .Item("http://schemas.microsoft.com/cdo/configuration/sendpassword") = "password" .Update End With Set cdoMessage = CreateObject("CDO.Message") With cdoMessage Set .Configuration = iConfig .From = "Δοκιμή χρήστη domain.tld>" .To = "Χρήστης " .Subject = "Γεια σου, Χρήστη" .TextBody = "Γράφω αυτό το μήνυμα από το σενάριο ASP." .Send End With Set cdoMessage = Nothing Set iConfig = Nothing %>

Ορισμένα CMS έχουν ήδη ενσωματωμένα εργαλεία για την αποστολή αλληλογραφίας ή αντίστοιχων λειτουργικών μονάδων· ας δούμε τα πιο δημοφιλή.

Wordpress

Για αυτό το CMS υπάρχει μια ειδική ενότητα "WP Mail SMTP", ένα παράδειγμα της διαμόρφωσής του περιγράφεται στη σελίδα της ενότητας.

Δώστε προσοχή στην απεικόνιση στο παράδειγμα· στο σύστημα αλληλογραφίας μας, είναι απαραίτητο να χρησιμοποιήσετε τη θύρα 25 και δεν απαιτείται κρυπτογράφηση SSL.

Joomla

Στον πίνακα διαχείρισης, μεταβείτε στην ενότητα "Γενικές ρυθμίσεις", επιλέξτε την καρτέλα "Διακομιστής". Στο πεδίο "Mail", πρέπει να επιλέξετε τη μέθοδο αποστολής ως "διακομιστής SMTP", στα πεδία "Διεύθυνση διακομιστή SMTP" και "Σύνδεση SMTP" και "Κωδικός πρόσβασης SMTP" καθορίστε τις κατάλληλες λεπτομέρειες του συστήματος αλληλογραφίας, για παράδειγμα: smtp.site, box@your_domainκαι αντίστοιχο Κωδικός πρόσβασης.

Drupal

Αυτό το CMS έχει επίσης τη δική του ενότητα για εργασία με διακομιστή SMTP, με βάση το PHPMailer.Μπορείτε να πραγματοποιήσετε λήψη αυτής της ενότητας στη σελίδα της στον ιστότοπο του CMS Drupal· μια περιγραφή της εγκατάστασης της λειτουργικής μονάδας είναι διαθέσιμη στο αρχείο με αυτήν.

NetCat

Αυτό το CMS δεν διαθέτει ενσωματωμένες λειτουργίες για εργασία με διακομιστή SMTP. Για να στείλετε αλληλογραφία χρησιμοποιώντας σενάρια ιστότοπου, μπορούμε να προσφέρουμε τη χρήση της λύσης μας· για να τη συνδέσετε πρέπει να εκτελέσετε τα ακόλουθα βήματα:

  • Κατεβάστε ένα αρχείο με τα απαραίτητα αρχεία από τον ιστότοπό μας ( send_auth_mail.phpΚαι mail.inc.php) και αποσυσκευάστε το στον υπολογιστή σας.
  • Επεξεργασία αρχείου send_auth_mail.phpαπό το αρχείο, υποδεικνύοντας σε αυτό τις λεπτομέρειες σύνδεσης στον επιθυμητό διακομιστή SMTP:

    • $mail_smtpServer = "smtp.site"; (Διεύθυνση διακομιστή SMTP)
    • $mail_port = "25" ; (θύρα σύνδεσης)
    • $mail_username = "[email προστατευμένο]" ; (όνομα χρήστη για εξουσιοδότηση στον διακομιστή SMTP)
    • $mail_password = "Κωδικός πρόσβασης"; (κωδικός πρόσβασης για εξουσιοδότηση στον διακομιστή SMTP)
  • Δημιουργήστε ένα αντίγραφο ασφαλείας του αρχείου domain.tld/www/netcat/admin/mail.inc.php;
  • λήψη αρχείων send_auth_mail.phpΚαι mail.inc.phpστον εικονικό ιστότοπο στον κατάλογο domain.tld/www/netcat/admin/

domain.tldθα πρέπει να αντικατασταθεί με το όνομα τομέα σας.

Η προτεινόμενη λύση λειτουργεί με όλες τις λειτουργικές μονάδες NetCat που χρησιμοποιούν τις τυπικές λειτουργίες αυτού του CMS για την αποστολή αλληλογραφίας.




Μπλουζα