Invio di email tramite smtp con autorizzazione php. Invio di posta tramite SMTP in PHP. Invio di posta php tramite la configurazione dello script SMTP

Posta PHP

Questa funzione è implementata per impostazione predefinita come invio di e-mail. Questa funzionalità non richiede che un server di terze parti inoltri la posta elettronica. Per verificare la correttezza di questa funzione basta creare un file test.php nella cartella del sito e inserire lì il seguente codice:

Dove invece "E-MAILDESTINATARIO" Inserisci l'e-mail a cui inviare la lettera.

Posto questa vita alla radice del tuo sito.

Successivamente, inserisci www.YourDomain/test.php nella barra degli indirizzi. Se viene ricevuta una lettera all'e-mail specificata, il tuo hosting funziona correttamente con la funzione di invio di lettere " Posta PHP". È possibile che la lettera sia finita nello spam, quindi è necessario controllarla anche lei.

Se la lettera è arrivata con una codifica incomprensibile, cambia la riga: "Controllo invio posta" SU "Controllo invio posta", "Tipo contenuto:testo/html;charset=utf-8".

E ripeti l'invio della lettera tramite la barra degli indirizzi del tuo browser.

Se dopo le manipolazioni di cui sopra la lettera di prova non raggiunge il destinatario finale, è necessario contattare il supporto tecnico del proprio hosting.

Tra le carenze questo metodo Vale la pena notare che il lavoro non è permanente questo metodo. Potrebbero verificarsi interruzioni nell'invio di e-mail da parte dell'hosting.

Lo svantaggio principale di questo metodo è che tutte le lettere inviate alle e-mail dei clienti non verranno riconosciute dai servizi di posta (gmail, mail.ru, yandex.ru) poiché sono state inviate direttamente dal tuo sito web.

Il servizio di posta Gmail visualizza queste lettere con un punto interrogativo e la firma: "Il sistema Gmail non è stato in grado di confermare che questa lettera è stata inviata dal dominio TuoDominio. Potrebbe essere spam."

Per evitare questa situazione .

SMTP (protocollo di trasferimento di posta semplice)

SMTP: protocollo di trasferimento della posta. In totale, per impostare la trasmissione della posta utilizzando questo protocollo, è necessario il server SMTP stesso. L'opzione più comune per utilizzare la posta aziendale (di dominio) yandex.ru come server SMTP è https://pdd.yandex.ru/.

Prima di tutto è necessario account (posta) yandex, in base al quale verranno create le email per il tuo dominio: “ordine@TuoDominio” “info@TuoDominio”... L'account principale non sarà visibile da nessuna parte e verrà utilizzato solo per creare email di dominio basate su di esso in futuro.

Dopo aver effettuato l'accesso al tuo account personale La posta del dominio Yandex viene creata utilizzando il collegamento https://pdd.yandex.ru/. Questa è l'e-mail del dominio che gli utenti vedranno nel campo "Mittente".

Il campo "Mittente" è obbligatorio quando si inviano e-mail tramite SMTP. Usare SMTP per inviare lettere, una combinazione di " Dominio" - "E-mail", in tal modo le lettere vengono riconosciute dai servizi postali.


Tra gli svantaggi di questo metodo vale la pena notare l'impossibilità di "caricare" il ritratto della posta del dominio, poiché i servizi di posta stessi non forniscono ancora questa funzionalità.

2019-08-05

Ciao, caro visitatore!

Perdonatemi il ritardo nell'aggiornamento del blog. Ma c'è una spiegazione completamente comprensibile per questo. Dopotutto era l'estate, la dacia, gli ospiti, il bosco, l'acqua e molto altro, che non mi permetteva di affrontare i problemi della creazione di un sito web. Ma ora mi sono liberato un po', gli ospiti se ne sono andati, e penso che ora potrò sicuramente prestare la dovuta attenzione a questo.

Quindi, dopo che nello scorso articolo abbiamo collegato la posta del nostro dominio ad uno dei servizi di posta, ora vediamo come è possibile inviare email dal sito. Inoltre, in modo tale che le nostre lettere non finiscano nello SPAM, ma vengano consegnate in modo affidabile e con un alto grado di probabilità ai nostri destinatari.

In generale, esiste una funzione mail() integrata per inviare lettere in PHP. Ma va notato che nonostante la semplicità di questo metodo (in questo caso per inviare lettere è sufficiente specificare una sola riga di codice con determinati parametri), l'utilizzo di questa opzione presenta un notevole inconveniente legato al problema dello SPAM .

Il fatto è che i filtri anti-SPAM dei server di posta dal lato del destinatario non favoriscono realmente le lettere inviate tramite la funzione mail(). E nella maggior parte dei casi, tali messaggi vengono filtrati o addirittura cancellati prima di raggiungere il destinatario.

E per eliminare il più possibile tali casi, di solito viene utilizzata un'altra opzione, in cui le lettere vengono inviate come se ciò fosse effettuato da un servizio di posta di terze parti.

Questo metodo è chiamato invio di posta tramite SMTP con autorizzazione. Che esamineremo oggi utilizzando l'esempio dell'invio di un modulo feedback. Inoltre, per questo utilizzeremo la libreria PHPMailer, abbastanza nota e popolare, che consente di organizzare in modo molto semplice l'invio di lettere tramite SMTP.

  • Come invieremo le lettere di feedback
  • Creazione di un modulo di feedback
  • Installazione della libreria PHPMailer
  • Creiamo uno script per l'invio di posta tramite SMTP
  • Controllo dell'invio di e-mail
  • File di origine del sito

Come invieremo le lettere di feedback

Prima che inizi lavoro pratico Dopo aver inviato le lettere di feedback, decideremo innanzitutto come farlo.

Il modulo di feedback è progettato per consentire all'utente di comunicare con l'amministratore del sito per trasmettere il suo messaggio. In genere, questo modulo è composto da diversi campi e un pulsante "Invia".

In linea di principio per inviare una email è sufficiente utilizzare solo pochi campi che forniscano informazioni sufficienti sull’utente e sul contenuto del messaggio, come ad esempio:

  • "Nome" - per inserire il nome del mittente del messaggio;
  • "E-mail" - per l'indirizzo E-mail mittente;
  • "Soggetto del messaggio";
  • "Messaggio di testo".

Anche se puoi aggiungerne altri. Ad esempio, un numero di telefono, se è veramente necessario.

Nel nostro caso tali lettere verranno inviate all'indirizzo dell'amministratore del sito da una vera e propria casella di posta con autorizzazione sul servizio di posta a cui è collegato il nostro dominio.

Poiché nell'articolo precedente ci siamo concentrati sulla verifica della connessione della posta del dominio al servizio Yandex.Mail, invieremo la posta per questa opzione. Anche se questo non è importante. Di seguito vedrai quelle opzioni che, una volta modificate, ti permetteranno di inviare email tramite server email Mail.ru.

Come vera e propria casella di posta da cui verranno inviate le lettere, utilizzeremo l'account di un utente di posta del dominio appena creato, diciamo con l'indirizzo [e-mail protetta]. E invieremo queste lettere a Cassetta postale amministratore [e-mail protetta], che abbiamo precedentemente creato nell'articolo precedente.

Pertanto, il mittente della lettera dal modulo di feedback sarà la casella di posta [e-mail protetta]., e il destinatario - [e-mail protetta]. In questo caso, tutte le informazioni sull'utente che ha inviato il messaggio con il suo contenuto verranno trasmesse nel corpo della lettera inviata.

Creazione di un modulo di feedback

Dopo aver deciso la procedura per l'invio delle lettere, creeremo ora un modulo di feedback con il quale lo faremo.

Di seguito è riportato il codice HTML per questo modulo, che inseriremo nella pagina "Contatti" (file kontakty.php nella directory articoli).

    "articolo" >

    Contatti

    Feedback

    "contatto" azione = "#" metodo = "inviare" >

    Modulo di feedback

    Per tutte le domande, richieste e proposte commerciali, potete contattarci utilizzando il modulo di feedback sottostante.

    "blocco contatti" >

    "ingresso-contatto" >

    "testo" id = "Nome del contatto" nome = "Nome del contatto" titolo = "Il nome deve essere in russo e contenere almeno 3 caratteri" modello = "{3,}" richiesto>

  1. "contatto vuoto" >

    "ingresso-contatto" >

    "e-mail" id = "contatto email" nome = "contatto email" richiesto>

  2. "oggetto-contatto" >

  3. "contatto-commento" >

  4. "pulsante di contatto" >

    "invia" nome = "pulsante di contatto" valore = "Inviare" >

Fig.1 Codice HTML del modulo di feedback

Puoi vedere come appare il modulo di feedback mostrato qui nello screenshot seguente.

Così modulo richiesto creato. E ora puoi passare alle questioni relative all'elaborazione e all'invio dei dati sotto forma di messaggio di posta elettronica.

Installazione della libreria PHPMailer

Come notato in precedenza, per inviare la posta utilizzeremo la libreria PHPMailer, che semplificherà notevolmente l'invio di posta elettronica tramite Protocollo SMTP con autorizzazione su un servizio di posta di terze parti.

Per installarlo è necessario scaricarlo file necessari. Questo può essere fatto dal servizio web GitHub utilizzando Composer (un gestore delle dipendenze dei pacchetti per PHP). Oppure scarica semplicemente i file necessari nel solito modo.

schermata 73

Di seguito è riportata la pagina del servizio web GitHub, dove è contrassegnato il collegamento al download regolare della libreria PHPMailer.

Oltretutto, ultima versione 6.0.7, che è stato salvato al momento della stesura di questo articolo, può essere scaricato dai materiali allegati.

In ogni caso, il file di archivio risultante dovrebbe essere decompresso, dopodiché la cartella PHPMailer-master estratta con tutto il suo contenuto dovrebbe essere posizionata nella root del sito. Allo stesso tempo, per semplicità, puoi rinominarlo PHPMailer. Di seguito è riportato il contenuto della cartella PHPMailer posta nella directory root del sito.

Quindi abbiamo installato la libreria PHPMailer. Dopodiché possiamo iniziare a creare uno script con il quale invieremo messaggi email dal nostro sito web.

Creiamo uno script per l'invio di posta tramite SMTP

Per comporre lo script è sufficiente utilizzare i consigli per l'utilizzo di PHPMailer riportati nella pagina GitHub, che abbiamo utilizzato in precedenza per scaricare la libreria.

In particolare indicano che all'inizio dello script è necessario importare le classi PHPMailer nello spazio dei nomi globale. E vengono fornite righe specifiche di codice corrispondente. Esistono anche esempi di utilizzo delle proprietà e dei metodi di PHPMailer, inclusa la possibilità di inviare posta tramite SMTP.

Ma se ciò non bastasse, puoi anche utilizzare la documentazione, che contiene una descrizione di tutte le proprietà e i metodi di questa libreria.

schermata 74

Di seguito è riportato il codice script per l'invio di posta dal modulo di feedback tramite SMTP con autorizzazione. Dove tutte le righe relative a PHPMailer sono fornite di spiegazione ed evidenziate con uno sfondo chiaro.

Il resto della parte, compresi i frammenti relativi alla ricezione e all'elaborazione dei dati dal modulo, che in precedenza dovevamo utilizzare in altri processori, è indicato da uno sfondo scuro. Sono stati discussi in dettaglio in precedenza in un articolo dedicato specificamente alle questioni relative all'ottenimento e alla verifica dei dati da un modulo in PHP. Dove abbiamo parlato anche della funzione utente universale per la convalida e l'elaborazione dei dati dei moduli simbolo_controllo().

Inseriremo questo script nello stesso file kontakty.php in cui abbiamo precedentemente creato il modulo di feedback.

    //----Script per inviare posta tramite SMTP utilizzando PHPMailer----

    //Importa le classi PHPMailer nello spazio dei nomi globale. Dovrebbero essere nella parte superiore dello script, non all'interno della funzione

    utilizzo PHPMailer\PHPMailer\PHPMailer ;

    utilizzo PHPMailer\PHPMailer\Eccezione ;

    Se (!vuoto($_POST["pulsante di contatto"])) (

    $nome = $_POST["nome-contatto"];

    $nome = simbolo_di_controllo ($nome, "Nome" , "1" , "/^+\z/iu" );

    $e-mail = $_POST["e-mail-contatto"];

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

    $oggetto = $_POST["oggetto-contatto"];

    $oggetto = simbolo_di_controllo ($oggetto, "Oggetto del messaggio" , "1" , "0" );

    $commento = $_POST["commento-contatto" ];

    $commento = simbolo_di_controllo ($commento, "Messaggio di testo", "1" , "0" );

    Se (!vuoto($GLOBALS["avviso" ])) (

    $avviso = "I dati del modulo non sono stati inviati. Sono stati rilevati i seguenti errori:\n".$avviso;

    includere"avviso.php";

    altro {

    //Collegamento della libreria

    richiedere"PHPMailer/src/PHPMailer.php" ;

    richiedere"PHPMailer/src/Exception.php" ;

    richiedere"PHPMailer/src/SMTP.php" ;

    $posta = nuovo PHPMailer(); //Inizializzazione della classe

    $da = " [e-mail protetta]" ; //Indirizzo email da cui viene inviata la lettera

    $a = " [e-mail protetta]" ; //Indirizzo del destinatario

    $posta -> isSMTP(); //Utilizza il protocollo SMTP

    $mail -> Host = "smtp.yandex.ru" ; //Indirizzo del server di posta

    $posta -> SMTPAuth = VERO ; //Abilita la modalità di autorizzazione

    $mail -> Nome utente = " [e-mail protetta]" ; //Accedi da un dominio email collegato a un servizio email di terze parti (in questo caso, Yandex.Mail)

    $posta -> Password = "27MrDon89" ; //Password per la posta del dominio

    $posta -> SMTPSecure = "ssl"; //Protocollo di crittografia

    $posta -> Porta = "465"; //Porta del server SMTP

    $posta -> CharSet = "UTF-8"; //Codifica

    $mail -> setFrom ($from, "Amministratore"); //Indirizzo e nome del mittente

    $mail -> aggiungiIndirizzo ($to, "Amministratore"); //Indirizzo e nome del destinatario

    $mail -> isHTML ( VERO ); //Imposta il formato email su HTML

    $mail -> Oggetto = "Modulo di feedback inviato"; //Oggetto dell'email (intestazione)

    $posta -> Corpo = "

    Nome del mittente: $nome

    Indirizzo del mittente: $e-mail

    Soggetto del messaggio: $oggetto

    Contenuto del messaggio: $commento



    " ; //Contenuto del messaggio

    $posta -> AltBody = "Testo lettera alternativa"; //E-mail alternativa se il client di posta elettronica non supporta il formato HTML

    $posta -> SMTPDebug = 0; //Abilita il debug SMTP: 0 - disattivato (per l'uso normale), 1 = messaggi client, 2 - messaggi client e server

    Se($posta -> invia()) (

    $avviso = "Messaggio inviato"; //Emette un messaggio nella finestra di dialogo del browser relativo all'avvenuto invio della lettera

    altro {

    $avviso = "Errore, l'e-mail non può essere inviata: ".$mail -> InformazioniErrore; //Emette un messaggio di errore

    includere"avviso.php";

Fig.5 Script per l'invio di email tramite SMTP con autorizzazione

Come puoi vedere, tutte le righe direttamente correlate all'invio di un messaggio di posta elettronica, in cui sono specificati i metodi e le proprietà necessarie, sono accompagnate da commenti. Non ha quindi senso ripeterci, ma possiamo soffermarci solo su alcuni di essi, che anzi necessitano di ulteriori spiegazioni, e cioè:

1. Poiché la lettera viene inviata da un servizio di posta di terzi, qui vengono applicate le impostazioni corrispondenti al server SMTP specifico. In questo caso, per il caso d'uso del server Yandex.Mail, vengono applicati i seguenti valori delle proprietà:

  • Proprietà Ospite(pos.28) - Indirizzo del server di posta con il valore smtp.yandex.ru;
  • Proprietà SMTPSecure
  • Proprietà Porta

Questi valori delle proprietà sono stati presi dalla pagina Yandex.Help mostrata nello screenshot seguente.

Ma tali informazioni possono essere ottenute anche da altre risorse. Per fare ciò, è sufficiente inserire la query appropriata nel motore di ricerca, ad esempio: "Server smtp Yandex". Dove puoi trovare un gran numero di riferimenti su questo problema.

In modo simile, i valori delle impostazioni possono essere ottenuti da altri server SMTP. Di seguito è riportato uno screenshot della pagina della Guida di Mail.ru, che mostra le impostazioni del server SMTP del servizio di posta Mail.ru.

Pertanto, nel caso di utilizzo di Mail.ru come server SMTP di terze parti, dovrebbero essere applicati i seguenti valori delle proprietà della classe PHPMailer:

  • Proprietà Ospite(pos.28) - Indirizzo del server di posta (smtp.mail.ru);
  • Proprietà SMTPSecure(pos.32) - Protocollo di crittografia (ssl);
  • Proprietà Porta(pos. 33) - Porta del server SMTP (465).

Un approccio simile dovrebbe essere applicato ad altri servizi di posta elettronica.

2. Nella proprietà Nome utente(pos. 30) è necessario indicare l'indirizzo completo della casella di posta del dominio. In questo caso, " [e-mail protetta]".

Tuttavia, se utilizzi un account diverso da un account di posta del dominio per inviare lettere, ma un indirizzo correlato direttamente al servizio di posta, ad esempio " [e-mail protetta]", il login dovrebbe essere solo la parte dell'indirizzo fino al segno "@". In questo caso il login avrebbe il valore "feedback".

3. PHPMailer fornisce una proprietà SMTPDebug(pos. 50), che consente di visualizzare diversi livelli di errori sulla schermata del browser. Questa funzionalità semplifica notevolmente la ricerca di problemi durante il debug di uno script.

In genere, in modalità normale, con il valore impostato su 0, l'output di informazioni dettagliate sull'errore è disabilitato. Ma se sorgono problemi con l'invio della posta o durante il debug, è possibile utilizzare altri valori per visualizzare informazioni più significative sull'errore.

Per vedere come appare in pratica, introduciamo temporaneamente qualche errore nelle impostazioni. Ad esempio, nella password di posta del dominio (property Parola d'ordine, pos.31). E anche per visualizzare informazioni dettagliate sull'errore, impostate temporaneamente nella proprietà SMTPDebug(pos.50) valore 1. Successivamente, quando tutto sarà debuggato e controllato, disabiliteremo la modalità di debug SMTP, sostituendo 1 con 0.

Nella parte finale dello script, dopo aver specificato tutte le proprietà e i metodi necessari, viene utilizzato il metodo per inviare la lettera Inviare()) (pos. 51). E se la lettera viene inviata e il metodo Inviare() per oggetto $posta restituisce true, quindi nella finestra di dialogo del browser attraverso la variabile $avviso Verrà visualizzato un messaggio relativo all'invio riuscito della posta (pos. 52).

Se per qualche motivo la posta non può essere inviata e, di conseguenza, il metodo non può restituire true, questo stato sarà accompagnato da un corrispondente messaggio di errore (pos. 55).

Controllo dell'invio di e-mail

Dopo aver creato uno script per l'invio della posta, naturalmente, dobbiamo guardare il risultato della nostra “creatività”. Abbiamo tenuto conto di tutto e non abbiamo commesso errori?

Per fare ciò, proviamo, come previsto, a inviare un messaggio dall'utente all'amministratore del sito dal modulo di feedback. Di seguito è riportato uno screenshot del modulo di feedback con i campi compilati prima dell'invio.

Ed ecco il risultato dell'invio del modulo.

Dove, dal messaggio nella finestra di dialogo del browser, è chiaro che la lettera non può essere inviata a causa di un problema con la connessione SMTP.

Ma sin da ora la proprietà SMTPDebug(pos. 50) viene assegnato il valore 1, quindi possiamo vedere informazioni dettagliate sull'errore che si è verificato e scoprire il motivo del suo verificarsi.

La schermata seguente mostra che durante il tentativo di connessione è stato rilevato un errore di autenticazione, ovvero l'utilizzo di un login o di una password errati.

Dopo aver eliminato la mancata corrispondenza della password (in precedenza è stata utilizzata una password errata per poter controllare l'output di informazioni aggiuntive sull'errore), proveremo a inviare nuovamente l'e-mail.

Questa volta tutto sembrava andare bene e abbiamo ricevuto un messaggio che la mail era stata inviata con successo. Apparentemente, a parte l'errore temporaneo inserito deliberatamente nella password della posta del dominio, non abbiamo commesso altri errori.

Ma per essere sicuri che la lettera sia stata effettivamente consegnata al destinatario, inseriamo la mail con l'indirizzo [e-mail protetta] e guarda il risultato.

Come puoi vedere, la lettera dall'indirizzo [e-mail protetta], dal quale abbiamo inviato un messaggio di posta elettronica con il nome "Feedback" giunto con successo all'amministratore del sito. Allo stesso tempo, il corpo della lettera contiene tutto il contenuto che abbiamo generato nello script utilizzando i dati ricevuti dal modulo di feedback, vale a dire:

  • Nome del mittente: Nikolay;
  • Indirizzo del mittente: [e-mail protetta];
  • Oggetto del messaggio: Controllo invio mail;
  • Contenuto del messaggio: messaggio di prova.

Ora, dopo aver verificato con successo l'invio della posta, è possibile disattivare la modalità di debug SMTP assegnando la proprietà SMTPDebug(pos.50) valore 0.

Pertanto, abbiamo completato il compito di creare uno strumento per l'invio di posta tramite SMTP con autorizzazione utilizzando un server di posta di terze parti.

Ad esempio, nel prossimo articolo vedremo come inviare email di conferma per recuperare i dati dell'account utente registrato.

File di origine del sito

I file sorgente del sito con gli aggiornamenti apportati in questo articolo possono essere scaricati dai materiali aggiuntivi allegati:

  • file della directory www
  • Tabelle del database MySQL

L'invio di posta tramite SMTP da un server locale consente di testare l'invio di messaggi da un sito situato su un computer locale o, più semplicemente, da un server locale. Per fare ciò, puoi utilizzare qualsiasi servizio di posta Yandex, Google o mail.ru.

Innanzitutto, SMTP (Simple Mail Transfer Protocol) è un protocollo di rete ampiamente utilizzato progettato per la trasmissione di posta elettronica su reti TCP/IP. E tutti i servizi di posta elettronica più diffusi dispongono di tali protocolli.

Con l'avvento dei server locali non è stato più necessario scegliere un provider di hosting per verificare le prestazioni dei singoli script o sistemi cms e tanto meno pagarli. È molto più semplice testare tutto su un computer e poi puoi mostrare a tutti cosa hai “fatto”.

Molti di questi server dispongono già di software integrato e delle funzionalità necessarie per lavorare con la posta, devi solo configurarlo correttamente.

Per verificare la funzionalità di tale posta, è richiesto il minimo indispensabile:

  • Puoi utilizzare Openserver come server locale.
  • E uno script semplice, il cui modello può essere trovato appena sotto.
  • Puoi utilizzare qualsiasi server di posta.

Invio di posta php tramite la configurazione dello script SMTP

È necessario modificare un semplice modello di script che può essere copiato di seguito o scaricato da centinaia di siti simili.

Innanzitutto, devi modificare alcuni valori nel modello di script.
A — modificare l'indirizzo postale a cui verrà inviato il messaggio di posta.
soggetto - oggetto della lettera
Messaggio - il messaggio stesso o il corpo della lettera.

Esempio del mio script:

Ovviamente puoi espandere leggermente la funzionalità e fare in modo che lo script visualizzi un messaggio sull'invio della posta. Anche se in realtà è il server SMTP che effettua l'invio e lo script genera solo il messaggio.

Ad esempio, puoi scrivere questo:

Tutti i valori sostituiti devono essere tra virgolette, altrimenti lo script genererà un errore. Successivamente, puoi salvare lo script nella cartella del server locale.

Per esempio: domini/send/index.php e inizia a configurare l'invio della posta tramite opensrerver SMTP.

La posta arriverà a qualsiasi indirizzo che verrà specificato nello script al posto del valore 'A' , ma questa mail verrà elaborata e inviata esattamente dall'SMTP che verrà specificato nelle impostazioni di openserver.

  1. Avvio del server
  2. Apri il modulo openserver con le impostazioni nel menu "posta".
  3. Compiliamo tutti i campi come mostrato in figura, mentre sostituiamo il nome utente, l'e-mail del mittente e la password da una vera casella di posta Yandex.

Salviamo le impostazioni e dopo il riavvio del server è possibile accedere allo script stesso. Dalla cartella “I miei siti”, aprire la cartella “invia” in cui si trova lo script index.php precedentemente salvato.

Non appena si accede a questo script, in una nuova finestra del browser verranno visualizzate le informazioni che indicano che lo script è stato completato.

Successivamente, dovresti controllare la tua casella di posta, il cui indirizzo è stato specificato nello script, per vedere se la lettera è arrivata.

Se non c'è significa che qualcosa non è configurato correttamente, oppure la lettera è finita nella cartella spam.

Tutte le altre impostazioni sembrano simili, ma per ogni evenienza, informazioni aggiuntive non danneggeranno.

Per impostare l'invio della posta tramite SMTP mail ru, è sufficiente sostituire i parametri Yandex con i parametri mail ru.

E per non ricostruire ogni volta il server locale, è meglio configurare diversi profili openserver. Come farlo è mostrato nel video tutorial.

In questo caso sarà sufficiente caricare semplicemente il profilo e tutte le impostazioni specificate per questo profilo saranno disponibili dopo il riavvio del server. È una cosa molto comoda e funziona in modo molto semplice.

Per ogni profilo (non importa come verrà chiamato), è necessario effettuare le proprie impostazioni, a meno che, ovviamente, non si preveda di utilizzare script, sistemi cms e applicazioni con parametri diversi.
In caso contrario, puoi cavartela con le impostazioni predefinite.

Per quanto riguarda la posta SMTP ru, qui è tutto identico.

I dati Yandex vengono modificati in dati mail ru

Invio posta tramite smtp google

Per impostare l'invio della posta tramite Google SMTP, è necessario un piccolo sforzo.

In primo luogo, creare un profilo in Google è più difficile che in altri sistemi Yandex e mail ru
In secondo luogo, il sistema non lascerà semplicemente passare la lettera, anche se fornisci le tue informazioni di accesso. Per cominciare, invierà una lettera contenente tutte le informazioni necessarie su ulteriori istruzioni.

Altrimenti Per Google la configurazione è esattamente la stessa. Cambiano solo tutti i dati.

Per configurare l'invio di posta tramite altro SMTP, tutti i dati saranno più o meno gli stessi.

Se tutto ha funzionato per te e le lettere hanno raggiunto il destinatario specificato, significa che tutto è stato fatto correttamente. Sarebbe fantastico se condividessi le tue esperienze nei commenti.

Affinché un determinato sito Web abbia l'opportunità di funzionare in modo efficiente e produttivo, la sua creazione dovrebbe essere affrontata nel modo più responsabile e attento possibile. Un'attenzione particolare merita la scelta del sistema che verrà utilizzato per realizzare un negozio online. Il fatto è che una piattaforma commerciale specializzata nella vendita di beni o servizi deve consentire l'implementazione di tutte le funzionalità necessarie ed essere facile da usare, sia per gli amministratori coinvolti nella manutenzione e riempimento dei siti, sia per i clienti dei negozi online. Molte persone e aziende che si trovano ad affrontare la questione della scelta di un CMS adatto a se stesse analizzano se scegliere Magento o OkayCMS. Confrontiamo le caratteristiche e le capacità di questi motori di siti web.

Quando lavori sul tuo sito web, una persona o un'azienda dovrà impegnarsi molto: solo in questo caso puoi contare su risultati positivi e ottenere uno strumento veramente efficace. Una delle domande fondamentali che dovrà essere risolta ancor prima di iniziare a creare un sito web sarà come decidere l'opzione CMS più adatta. Successivamente confronteremo due CMS: Joomla o OkayCMS e presteremo attenzione alle caratteristiche di ciascuno di essi.

Avere un proprio sito web è uno dei requisiti fondamentali per un'attività efficace e di successo. Le statistiche indicano chiaramente un aumento del numero di acquisti di vari beni e ordini di servizi tramite Internet. Tenendo conto di ciò, la maggior parte delle aziende commerciali è già consapevole della necessità di avere un proprio sito web. Tuttavia, il semplice fatto di disporre di una risorsa Internet non è sufficiente per contare sulla sua efficacia, redditività e sui vantaggi aziendali attesi.

Quando ti prepari a creare il tuo sito web o ad aprire un negozio online, devi prendere in considerazione e analizzare molti problemi, oltre a risolvere vari problemi. Solo in questo caso puoi contare sul fatto che il tuo progetto porterà risultati positivi e riuscirà a soddisfare pienamente le tue aspettative. Tra le varie problematiche legate allo sviluppo di un negozio online, merita un'attenzione particolare la questione della scelta di un CMS. Per rendere più facile per te decidere il motore ottimale per te stesso, all'interno

Quando si pianifica di creare il proprio sito Web per un futuro negozio online, un numero abbastanza elevato di persone e persino di aziende specializzate nelle vendite si trovano di fronte a una scelta difficile ed estremamente importante: quale dei CMS esistenti scegliere. Se stai pensando a cosa scegliere: PrestaShop o OkayCMS, ti consigliamo di leggere questo articolo, in cui confronteremo questi due sistemi per la creazione di siti Internet, in particolare negozi online.

Poiché l'invio di messaggi anonimi da server hosting virtuali Windows è proibito, l'invio delle lettere dovrebbe avvenire tramite un server SMTP, per il quale è anche possibile utilizzare il nostro sistema di posta.

Come inviare e-mail utilizzando PHP?

Utilizzando qualsiasi classe PHP che supporti l'autorizzazione sul server SMTP. Ad esempio, puoi utilizzare il set di classi PHPMailer.

Puoi anche utilizzare il nostro esempio, che implementa l'invio di lettere utilizzando un server SMTP, che richiede autorizzazione. Pertanto, non dimenticare di aggiungere allo script i dettagli di accesso appropriati, ad esempio:

// Se è necessario mostrare il registro della sessione SMTP, è possibile rimuovere il commento dalla riga seguente. // $_SERVER["debug"] = vero; funzione MailSmtp ($destinatario, $oggetto, $contenuto, $intestazioni, $debug = 0) ($smtp_server = "smtp.sito"; // Indirizzo del server SMTP$porta_smtp = 25 ; // Porta del server SMTP$utente_smtp = " [e-mail protetta]" ; // Nome utente per l'autorizzazione sul server SMTP$smtp_password = "pAsSwORd"; // Password per l'autorizzazione sul server SMTP$mail_da = " [e-mail protetta]" ; // Casella postale da cui viene inviata la lettera$sock = fsockopen ($smtp_server, $smtp_port, $errno, $errstr, 30); $str = fgets ($calzino, 512); if (! $sock ) ( printf ("Il socket non è stato creato\n" ); exit(1 ); ) smtp_msg ($sock, "HELO". $_SERVER [ "NOME_SERVER" ]); smtp_msg($sock, "LOGIN AUTORIZZATO"); smtp_msg ($sock, base64_encode ($smtp_user)); smtp_msg ($sock, base64_encode ($smtp_password)); smtp_msg ($sock, "MAIL DA:<" . $mail_from . ">" ); smtp_msg ($calzino, "RCPT TO:<" . $reciever . ">" ); smtp_msg ($sock , "DATA" ); $headers = "Oggetto: " . $oggetto . "\r\n" . $headers ; $dati = $headers . "\r\n\r\n" . $contenuto . "\r\n." ; smtp_msg ($calzino, $dati ); smtp_msg ($calzino, "QUIT" ); fclose ($calzino); ) funzione smtp_msg ($calzino, $msg) ( if ( ! $sock ) ( printf ("Socket rotto!\n" ); exit(1 ); ) if (isset($_SERVER [ "debug" ]) && $_SERVER [ "debug" ]) ( printf ("Invia da noi : %S
" , nl2br (htmlspecialchars ($msg )); ) fputs ($sock , " $msg \r\n" ); $str = fgets ($sock , 512 ); if (! $sock ) ( printf ("Il socket è down\n" ); exit(1); ) else ( if (isset($_SERVER [ "debug" ]) && $_SERVER [ "debug" ]) ( printf ("Ottenuto dal server: %s
" , nl2br (htmlspecialchars ($str )); ) $e = esplode (" " , $str ); $code = array_shift ($e ); $str = implode (" ", $e ); if ($code > 499) (printf ( "Problemi con la conversazione SMTP.

Codice %d.
Messaggio %s
"
, $codice , $str ); uscita(1); ) ) ) ?>

Scarica un esempio di script già pronto con la funzione MailSmtp(): smtpauth.php.sample

Puoi utilizzare la funzione MailSmtp() descritta sopra per sostituire direttamente la funzione mail(); considera un esempio della forma più semplice in PHP:

// Intestazioni dei messaggi, definiscono la codifica del messaggio, i campi Da, A, ecc.$headers = "Versione MIME: 1.0\r\n" ; $intestazioni .= "Tipo di contenuto: text/html; charset=windows-1251\r\n"; $intestazioni .= "A: $a \r\n" ; $intestazioni .= "Da: nome del mittente " ; // posta ($a, $oggetto, $messaggio, $intestazioni); require_once "smtpauth.php"; MailSmtp ($a, $oggetto, $messaggio, $intestazioni); ) ?>
A cui: Soggetto: Testo: 
 
 

Affinché questo modulo funzioni senza la funzione mail(), abbiamo incluso il file smtpauth.php tramite require_once e chiamato la funzione MailSmtp() descritta in esso con argomenti simili a mail(). Allo stesso tempo, abbiamo commentato la stessa chiamata mail() nel codice per evitare errori durante l'esecuzione dello script.

Come inviare e-mail utilizzando ASP.NET?

Se stai utilizzando la versione 2.0, utilizza la classe MailMessage System.Net.Mail), ben descritto.

Di seguito sono riportati esempi del suo utilizzo per i linguaggi C# e VisualBasic:

Esempio per il linguaggio C#:

<% @Page Language="c#" %> <% @Import Namespace="System.Net.Mail" %> <% @Import Namespace="System.Net" %> <% MailMessage message = new MailMessage(); // creando una nuova lettera messaggio.To.Add(" [e-mail protetta]"); // aggiunta dell'indirizzo del destinatario messaggio.From = new MailAddress("da@ dominio.tld", "Nome del mittente"); // specificando il nome e l'indirizzo del mittente message.Subject = "Oggetto del messaggio"; // specificando l'oggetto della lettera messaggio.BodyEncoding = System.Text.Encoding.UTF8; // specificando la codifica delle lettere messaggio.IsBodyHtml = falso; // specificando il formato della lettera (true - HTML, false - non HTML) message.Body = "Testo del messaggio"; // specificando il testo (corpo) della lettera Client SmtpClient = nuovo SmtpClient("smtp.site",25); //creazione di una nuova connessione al server "smtp.site" client.DeliveryMethod = SmtpDeliveryMethod.Network; // definisce il metodo per l'invio dei messaggi client.EnableSsl = falso; // disabilita la necessità di utilizzare una connessione sicura al server client.UseDefaultCredentials = false; // disabilita l'uso dei dettagli di autorizzazione predefiniti client.Credentials = new NetworkCredential("postmaster@ dominio.tld", "***parola d'ordine***"); // specificando i dettagli necessari (nome utente e password) per l'autorizzazione sul server SMTP cliente.Invia(messaggio); // invia messaggio %>

Scarica un esempio di modulo finito che dimostra l'uso di questo metodo: MailForm.aspx.

Esempio per il linguaggio 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@dominio.tld", "Nome_mittente") smtpMssg.To.Add (" [e-mail protetta]") " aggiungendo l'indirizzo del destinatario smtpMssg.Subject = "Oggetto dell'e-mail" "indicazione dell'oggetto della lettera smtpMssg.Body = "Testo del messaggio" "indicazione del testo (corpo) della lettera smtpMssg.BodyEncoding = System.Text.Encoding.UTF8 " indicazione della codifica delle lettere smtpMssg.IsBodyHtml = falso " indicazione del formato della lettera (true - HTML, false - non HTML) Oscura SmtpMail come nuovo SmtpClient("smtp.site", 25) " dichiarazione di un nuovo oggetto di tipo "SmtpClient" SmtpMail.DeliveryMethod = SmtpDeliveryMethod.Network "indicazione della modalità di consegna della lettera SmtpMail.UseDefaultCredentials = False "disabilitare l'uso delle credenziali di autorizzazione per impostazione predefinita" SmtpMail.EnableSsl = Falso " disabilita la necessità di utilizzare una connessione sicura al server SmtpMail.Credentials = new NetworkCredential("postmaster@ dominio.tld", "***parola d'ordine***") "indicando i dati necessari (nome utente e password) per l'autorizzazione sul server SMTP SmtpMail.Send(smtpMssg) "invio di un messaggio %>

Esiste anche una classe SmtpMail deprecata (e deprecata) (che utilizza lo spazio dei nomi System.Web.Mail). Di seguito è riportato un esempio del suo utilizzo per il linguaggio VisualBasic:

<% @Page Language="VB" Debug="true" %> <% @Import Namespace="System.Web" %> <% @Import Namespace="System.Web.Mail" %> <% Dim smtpMssg = new MailMessage " dichiarazione di un nuovo oggetto di tipo "MailMessage" smtpMssg.From = "Nome_mittente dominio.tld>" "Indicazione del nome e dell'indirizzo del mittente smtpMssg.To = "amministratore@ dominio.tld" "indicazione dell'indirizzo del destinatario smtpMssg.BodyFormat = MailFormat.Testo "indicazione del formato della lettera smtpMssg.BodyEncoding = Codifica.UTF8 "indicando la codifica delle lettere smtpMssg.Subject = "Oggetto dell'e-mail" "indicazione dell'oggetto della lettera smtpMssg.Body = "Testo del messaggio" "indicazione del testo della lettera smtpMssg.Fields.Add("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate",1) "indicando la necessità dell'autorizzazione SMTP sul server smtpMssg.Fields.Add("http://schemas.microsoft.com/cdo/configuration/sendusername", "admin@ dominio.tld") "nome utente per l'autorizzazione smtpMssg.Fields.Add("http://schemas.microsoft.com/cdo/configuration/sendpassword", "***password***") "password per l'autorizzazione SmtpMail.SmtpServer = "smtp.sito" " specificando l'indirizzo del server SMTP SmtpMail.Send(smtpMssg) "invio di un messaggio %>

Come inviare e-mail utilizzando ASP?

Tieni presente che quando si utilizza il nostro server SMTP è richiesta l'autorizzazione, quindi non dimenticare di aggiungere i dettagli di accesso appropriati allo script, ad esempio:

<% 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@dominio.tld" .Item("http://schemas.microsoft.com/cdo/configuration/sendpassword") = "password" .Update End With Set cdoMessage = CreateObject("CDO.Message") With cdoMessage Set .Configuration = iConfig .From = "Utente di prova dominio.tld>" .To = "Utente " .Subject = "Ciao utente" .TextBody = "Scrivo questo messaggio dallo script ASP." .Send End With Set cdoMessage = Nothing Set iConfig = Nothing %>

Alcuni CMS dispongono già di strumenti integrati per l’invio della corrispondenza o di moduli corrispondenti; vediamo quelli più diffusi.

WordPress

Per questo CMS esiste un modulo speciale “WP Mail SMTP”, un esempio della sua configurazione è descritto nella pagina del modulo.

Prestare attenzione all'illustrazione nell'esempio; nel nostro sistema di posta è necessario utilizzare la porta 25 e la crittografia SSL non è richiesta.

Joomla

Nel pannello di amministrazione, vai alla sezione "Impostazioni generali", seleziona la scheda "Server". Nel campo "Posta", è necessario selezionare il metodo di invio come "server SMTP", nei campi "Indirizzo server SMTP" e "Login SMTP" e "Password SMTP" specificare i dettagli appropriati del sistema di posta, ad esempio: smtp.sito, box@tuo_dominio e corrispondente parola d'ordine.

Drupal

Questo CMS dispone anche di un proprio modulo per lavorare con un server SMTP, basato su PHPMailer.È possibile scaricare questo modulo dalla sua pagina sul sito Web CMS Drupal; una descrizione dell'installazione del modulo è disponibile nell'archivio con esso.

NetCat

Questo CMS non dispone di funzioni integrate per lavorare con un server SMTP. Per inviare posta utilizzando gli script del sito, possiamo offrirti di utilizzare la nostra soluzione; per collegarla, è necessario eseguire i seguenti passaggi:

  • Scarica un archivio con i file necessari dal nostro sito Web ( send_auth_mail.php E mail.inc.php) e scompattalo sul tuo computer;
  • Modifica file send_auth_mail.php dall'archivio, indicando in esso i dettagli della connessione al server SMTP desiderato:

    • $mail_smtpServer = "smtp.sito"; (Indirizzo del server SMTP)
    • $porta_posta = "25" ; (porta di connessione)
    • $nome_utente_mail = "[e-mail protetta]" ; (nome utente per l'autorizzazione sul server SMTP)
    • $password_e-mail = "Parola d'ordine"; (password per l'autorizzazione sul server SMTP)
  • Creare una copia di backup del file dominio.tld/www/netcat/admin/mail.inc.php;
  • scaricare files send_auth_mail.php E mail.inc.php al sito virtuale nella directory dominio.tld/www/netcat/admin/

dominio.tld dovrebbe essere sostituito con il tuo nome di dominio.

La soluzione proposta funziona con tutti i moduli NetCat che utilizzano le funzioni standard di questo CMS per inviare posta.




Superiore