Εργασία με e-mail. Αποστολή email μέσω προγραμματισμού χρησιμοποιώντας διάφορες υπηρεσίες Αποστολή μηνύματος στο mail c
Αποστολή email μέσω προγραμματισμού με χρήση διάφορες υπηρεσίες
- .ΚΑΘΑΡΑ,
Πολύ συχνά πρέπει να ασχοληθείς με την αποστολή emailαπό τον κωδικό του προγράμματος. Δεν χρειάζεται να πάτε μακριά για παραδείγματα.
Αυτό το άρθρο είναι μια υπόδειξη και δεν αποκαλύπτει τίποτα καινούργιο, αλλά πριν το γράψω, κοίταξα κάτι παρόμοιο στο Διαδίκτυο και ήμουν μάλλον έκπληκτος που σχεδόν παντού προσφέρουν είτε μια μη λειτουργική ή ξεπερασμένη λύση, είτε είναι απλά γραμμένο αναλφάβητα.
Το πρώτο πράγμα που δεν πρέπει να κάνετε με αυτά τα παραδείγματα είναι να χρησιμοποιήσετε το System.Web.Mail, το οποίο έχει καταργηθεί για μεγάλο χρονικό διάστημα και ξεκινώντας με Visual Studio 2010, δεν μπορείτε καν να προσθέσετε τη βιβλιοθήκη System.Web χωρίς να γνωρίζετε την πλήρη διαδρομή στο αντίστοιχο DLL.
Αντ 'αυτού, προτείνεται να χρησιμοποιήσετε τη βιβλιοθήκη System.Net.
χρησιμοποιώντας System.Net? χρησιμοποιώντας System.Net.Mail.
Έτσι, το πιο απλό, είναι το πιο σημαντικό και συχνά χρησιμοποιείται είναι η αποστολή ενός γράμματος από το δικό σας διακομιστής αλληλογραφίαςστο οποίο έχει διαμορφωθεί το πρόγραμμα -πελάτης SMTP. Όπως καταλαβαίνετε, ο διακομιστής μπορεί να είναι είτε αυτός στον οποίο εκτελείται η εφαρμογή, είτε ένας απομακρυσμένος, στον οποίο έχετε το δικαίωμα να στείλετε γράμματα χωρίς πρόσθετη εξουσιοδότηση.
Δείγμα κώδικα για αποστολή επιστολής από τοπικό μηχάνημα:
Χρησιμοποιώντας ταχυδρομικές υπηρεσίεςόπως το Gmail, το Yandex, το Mail.ru κ.λπ. όλα είναι ίδια, προστίθενται μόνο παράμετροι με εξουσιοδότηση.
Διακομιστής SMTP: smtp.gmail.com
Λιμάνι: 587
χρησιμοποιώντας (MailMessage mm = νέο MailMessage ("Όνομα
Διακομιστής SMTP: smtp.yandex.ru
Λιμάνι: 25
χρησιμοποιώντας (MailMessage mm = νέο MailMessage ("Όνομα
Διακομιστής SMTP: smtp.mail.ru
Λιμάνι: 25
χρησιμοποιώντας (MailMessage mm = νέο MailMessage ("Όνομα
Εάν έχετε γραμματοκιβώτιοστην υπηρεσία mail.ru τελειώνει με inbox.ru, list.ru ή bk.ru, στη συνέχεια η διεύθυνση του διακομιστή SMTP (smtp.inbox.ru, smtp.list.ru και smtp.bk.ru) αλλάζει ανάλογα.
Όπως μπορείτε να δείτε, για να χρησιμοποιήσετε οποιαδήποτε άλλη υπηρεσία αλληλογραφίας στα προγράμματά σας, χρειάζεται μόνο να μάθετε τη διεύθυνση και τη θύρα διακομιστή SMTP, καθώς και τους κανόνες εξουσιοδότησης.
Θα πρέπει επίσης να θυμόμαστε ότι σχεδόν όλα τα τρίτα μέρη ταχυδρομικές υπηρεσίεςεπιβάλλουν όρια στον αριθμό των μηνυμάτων ηλεκτρονικού ταχυδρομείου που αποστέλλονται για μια χρονική περίοδο.
Ετικέτες: email, αποστολή email, smtp
Μία από τις πιο απαιτητικές λειτουργίες στον ιστότοπο είναι η αίτηση ή η φόρμα παραγγελίας, τα δεδομένα από τα οποία αποστέλλονται μέσω ταχυδρομείου στον κάτοχο του ιστότοπου. Κατά κανόνα, αυτές οι φόρμες είναι απλές και αποτελούνται από δύο ή τρία πεδία εισαγωγής δεδομένων. Πώς δημιουργείτε μια τέτοια φόρμα παραγγελίας; Αυτό θα απαιτήσει τη χρήση της γλώσσας Σήμανση HTMLκαι τη γλώσσα προγραμματισμού PHP.
Η ίδια η γλώσσα σήμανσης HTML είναι απλή, απλά πρέπει να καταλάβετε πώς και πού να τοποθετήσετε συγκεκριμένες ετικέτες. Με τη γλώσσα προγραμματισμού PHP, τα πράγματα είναι λίγο πιο περίπλοκα.
Δεν θα είναι δύσκολο για έναν προγραμματιστή να δημιουργήσει μια τέτοια φόρμα, αλλά ένας κωδικοποιητής HTML μπορεί να δυσκολευτεί κάποιες ενέργειες.
Δημιουργήστε μια φόρμα για την υποβολή δεδομένων σε html
Η πρώτη γραμμή θα είναι η επόμενη
Τώρα ας τα βάλουμε όλα μαζί.
Τώρα θα κάνουμε υποχρεωτικά τα πεδία της φόρμας. Έχουμε τον ακόλουθο κώδικα:
Δημιουργήστε ένα αρχείο που δέχεται δεδομένα από μια φόρμα HTML
Αυτό θα είναι ένα αρχείο με το όνομα send.php
Στο αρχείο, στο πρώτο στάδιο, πρέπει να αποδεχτείτε δεδομένα από τον πίνακα ανάρτησης. Για να γίνει αυτό, δημιουργούμε δύο μεταβλητές:
$ fio = $ _POST ["fio"];
$ email = $ _POST ["email"];
Τα ονόματα μεταβλητών PHP προηγούνται με ένα σύμβολο $ και ένα ερωτηματικό στο τέλος κάθε γραμμής. $ _POST είναι ένας πίνακας στον οποίο μεταφέρονται τα δεδομένα από τη φόρμα. Στη μορφή html, η μέθοδος υποβολής καθορίζεται ως μέθοδος = "δημοσίευση". Έτσι, δύο μεταβλητές λαμβάνονται από html φόρμες... Για την προστασία του ιστότοπού σας, πρέπει να περάσετε αυτές τις μεταβλητές μέσω πολλών φίλτρων - συναρτήσεις php.
Η πρώτη συνάρτηση μετατρέπει όλους τους χαρακτήρες που ο χρήστης προσπαθεί να προσθέσει στη φόρμα:
Σε αυτή την περίπτωση, δεν δημιουργούνται νέες μεταβλητές στο php, αλλά χρησιμοποιούνται υπάρχουσες. Αυτό που θα κάνει το φίλτρο είναι η μετατροπή του χαρακτήρα "<" в "<". Также он поступить с другими символами, встречающимися в html коде.
Η δεύτερη συνάρτηση αποκωδικοποιεί το url εάν ο χρήστης προσπαθήσει να το προσθέσει στη φόρμα.
$ fio = urldecode ($ fio);
$ email = urldecode ($ email);
Στην τρίτη συνάρτηση, θα αφαιρέσουμε κενά από την αρχή και το τέλος της συμβολοσειράς, εάν υπάρχουν:
$ fio = περικοπή ($ fio);
$ email = trim ($ email);
Υπάρχουν και άλλες λειτουργίες για το φιλτράρισμα μεταβλητών php επίσης. Η χρήση τους εξαρτάται από το πόσο φοβάστε ότι ένας εισβολέας θα προσπαθήσει να προσθέσει κώδικα σε αυτήν τη μορφή αποστολής δεδομένων σε αλληλογραφία html.
Επικύρωση δεδομένων που μεταφέρθηκαν από τη φόρμα HTML σε αρχείο PHP
Για να ελέγξετε αν αυτός ο κώδικας λειτουργεί, εάν τα δεδομένα μεταδίδονται, μπορείτε απλά να τον εμφανίσετε στην οθόνη χρησιμοποιώντας τη λειτουργία ηχώ:
echo $ fio?
ηχώ "
";
echo $ email?
Η δεύτερη γραμμή είναι εδώ για να χωρίσει την έξοδο των μεταβλητών php σε διαφορετικές γραμμές.
Αποστολή των ληφθέντων δεδομένων από τη φόρμα HTML σε αλληλογραφία μέσω PHP
Για να στείλετε δεδομένα σε αλληλογραφία, πρέπει να χρησιμοποιήσετε τη λειτουργία αλληλογραφίας στην PHP.
αλληλογραφία ("σε ποια διεύθυνση θα σταλεί", "θέμα του γράμματος", "Μήνυμα (σώμα μηνύματος)", "Από: από ποια διεύθυνση ηλεκτρονικού ταχυδρομείου αποστέλλεται το γράμμα \ r \ n");
Για παράδειγμα, πρέπει να στείλετε δεδομένα στο email του κατόχου ή του διαχειριστή του ιστότοπου [προστασία ηλεκτρονικού ταχυδρομείου]
Η γραμμή θέματος του μηνύματος ηλεκτρονικού ταχυδρομείου πρέπει να είναι σαφής και το μήνυμα ηλεκτρονικού ταχυδρομείου πρέπει να περιέχει αυτό που ο χρήστης καθορίζει στη φόρμα HTML.
αλληλογραφία (" [προστασία ηλεκτρονικού ταχυδρομείου]"," Εφαρμογή από τον ιστότοπο "," Πλήρες όνομα: ". $ Fio.". E-mail: ". $ Email," Από: [προστασία ηλεκτρονικού ταχυδρομείου]\ r \ n ");
Πρέπει να προσθέσετε μια συνθήκη που θα ελέγξει εάν η φόρμα υποβλήθηκε χρησιμοποιώντας PHP στην καθορισμένη διεύθυνση ηλεκτρονικού ταχυδρομείου.
εάν (αλληλογραφία (" [προστασία ηλεκτρονικού ταχυδρομείου]"," Παραγγελία από τον ιστότοπο "," Πλήρες όνομα: ". $ Fio.". E-mail: ". $ Email," Από: [προστασία ηλεκτρονικού ταχυδρομείου]\ r \ n "))
{
echo "το μήνυμα εστάλη επιτυχώς"?
) αλλο (
}
Έτσι, ο κώδικας προγράμματος του αρχείου send.php που θα στείλει δεδομένα φόρμας HTML σε αλληλογραφία θα μοιάζει με αυτό:
$ fio = $ _POST ["fio"];
$ email = $ _POST ["email"];
$ fio = htmlspecialchars ($ fio);
$ email = htmlspecialchars ($ email);
$ fio = urldecode ($ fio);
$ email = urldecode ($ email);
$ fio = περικοπή ($ fio);
$ email = trim ($ email);
// echo $ fio;
// ηχώ "
";
// echo $ email;
εάν (αλληλογραφία (" [προστασία ηλεκτρονικού ταχυδρομείου]"," Εφαρμογή από τον ιστότοπο "," Πλήρες όνομα: ". $ Fio.". E-mail: ". $ Email," Από: [προστασία ηλεκτρονικού ταχυδρομείου]\ r \ n "))
(ηχώ "το μήνυμα στάλθηκε με επιτυχία"?
) αλλο (
ηχώ "προέκυψαν σφάλματα κατά την αποστολή μηνύματος".
}?>
Τρεις γραμμές για να ελέγξετε εάν τα δεδομένα που μεταβιβάστηκαν στο αρχείο σχολιάζονται. Εάν είναι απαραίτητο, μπορείτε να τα αφαιρέσετε, καθώς χρειάζονταν μόνο για τον εντοπισμό σφαλμάτων.
Τοποθέτηση κώδικα υποβολής φόρμας HTML και PHP σε ένα αρχείο
Στα σχόλια αυτού του άρθρου, πολλοί άνθρωποι θέτουν το ερώτημα πώς να δημιουργήσετε τόσο τη φόρμα HTML όσο και τον κώδικα PHP για την αποστολή δεδομένων σε αλληλογραφία σε ένα αρχείο και όχι σε δύο.
Για να υλοποιήσετε μια τέτοια εργασία, πρέπει να βάλετε τον κώδικα HTML της φόρμας στο αρχείο send.php και να προσθέσετε μια συνθήκη που θα ελέγχει για την παρουσία μεταβλητών στον πίνακα POST (αυτός ο πίνακας περνά από τη φόρμα). Δηλαδή, εάν οι μεταβλητές στον πίνακα δεν υπάρχουν, τότε πρέπει να εμφανίσετε τη φόρμα στον χρήστη. Διαφορετικά, πρέπει να αποδεχτείτε δεδομένα από τον πίνακα και να τα στείλετε στον παραλήπτη.
Ας δούμε πώς να αλλάξετε τον κώδικα PHP στο αρχείο send.php:
// ελέγξτε εάν οι μεταβλητές υπάρχουν στον πίνακα POST
εάν (! isset ($ _ POST ["fio"]) και! isset ($ _ POST ["email"])) (
?> ) αλλο (
// εμφάνιση της φόρμας
$ fio = $ _POST ["fio"];
$ email = $ _POST ["email"];
$ fio = htmlspecialchars ($ fio);
$ email = htmlspecialchars ($ email);
$ fio = urldecode ($ fio);
$ email = urldecode ($ email);
$ fio = περικοπή ($ fio);
$ email = trim ($ email);
εάν (αλληλογραφία (" [προστασία ηλεκτρονικού ταχυδρομείου]"," Εφαρμογή από τον ιστότοπο "," Πλήρες όνομα: ". $ Fio.". E-mail: ". $ Email," Από: [προστασία ηλεκτρονικού ταχυδρομείου]\ r \ n ")) (
ηχώ "Το μήνυμα εστάλη επιτυχώς"?
) αλλο (
echo "Παρουσιάστηκαν σφάλματα κατά την αποστολή του μηνύματος";
}
}
?>
Ελέγχουμε την ύπαρξη μιας μεταβλητής στον πίνακα POST χρησιμοποιώντας τη συνάρτηση PHP isset (). Ένα θαυμαστικό πριν από αυτήν τη λειτουργία σε μια κατάσταση σημαίνει άρνηση. Δηλαδή, εάν η μεταβλητή δεν υπάρχει, τότε πρέπει να δείξουμε τη μορφή μας. Αν δεν είχα βάλει θαυμαστικό, τότε η συνθήκη θα σήμαινε κυριολεκτικά - "αν υπάρχει, τότε δείξε τη μορφή". Και αυτό είναι λάθος στην περίπτωσή μας. Φυσικά, μπορείτε να το μετονομάσετε σε index.php. Εάν μετονομάσετε το αρχείο, μην ξεχάσετε να μετονομάσετε το όνομα του αρχείου και στη γραμμή