Come configurare smartphone e PC. Portale informativo
  • casa
  • Interessante
  • Modalità di invio della posta. Implementazione delle classi discendenti Model e Controller, creazione di View "s

Modalità di invio della posta. Implementazione delle classi discendenti Model e Controller, creazione di View "s

22/05/06 83,2K

Hai mai desiderato installare un modulo sul tuo sito web risposta? Probabilmente ti sei imbattuto in script simili. Stranamente, gli script già pronti per l'invio di un modulo all'e-mail sono molto popolari (puoi vederlo in qualsiasi archivio di script) e ce ne sono moltissimi. Ce ne sono di semplici in cui non cambia nulla, ma ce ne sono di complessi e grandi sistemi quella funzione su mysql, ti permette di modificare dinamicamente qualsiasi campo, contiene un mucchio di impostazioni... Ma sono davvero necessarie? Secondo me, la necessità di sistemi simili molto dubbioso.

Prova l'invio di posta a computer di casa fallire. Per fare ciò, è necessario un hosting con supporto php e funzioni di invio della posta. Ti consiglio il provider di hosting runweb.ru. Questo provider offre ottime tariffe, massima velocità accesso e servizio eccellente.

Metodi di invio della posta

Ci sono due modi principali per inviare posta dal server usando php.
Voglio esaminare entrambi in ordine.

Il primo e più facile è da usare funzioni php posta (). La funzione è molto semplice e immediata, sebbene l'invio di posta con usando la posta() presenta anche una serie di svantaggi. La cosa più importante è che la lettera non venga inviata direttamente, ma tramite php. Allo stesso tempo, il programma php inserisce alcuni dei suoi campi nella lettera. Ad esempio, non sarai in grado di indicare correttamente il mittente. Nel campo "da" (ovvero da chi proviene la lettera), nella maggior parte dei casi, sarà il nome del server. Il fatto è che php sostituisce le sue intestazioni nella riga di servizio della lettera "from".

Tuttavia, l'invio di posta utilizzando la funzione mail () rimane il più semplice
modo per inviare una lettera dal server. Diamo un'occhiata più da vicino a questo metodo.

La funzione mail() ha la seguente sintassi:

mail ($ a, $ oggetto, $ corpo, $ intestazioni);

$ to è l'indirizzo del destinatario. Ad esempio, " [e-mail protetta]". $ oggetto: l'oggetto della lettera. Ad esempio," Hai ricevuto una lettera ". $ corpo: il testo del messaggio. $ intestazioni: qualsiasi intestazione del messaggio. Ad esempio, l'indirizzo del mittente sarà simile al seguente:" a partire dal: [e-mail protetta]".

Qui esempio completo invio di posta tramite posta ():

posta (" [e-mail protetta]"," Oggetto email "," Ciao! NHai ricevuto un'email. "," Da: site_name ");

Si prega di notare che quando si utilizza questa funzione su un computer di casa, potrebbe dare un errore, perché non è possibile inviare un'e-mail senza un server di posta.

Ora vediamo come inviare la posta utilizzando sendmail.

sendmail è programma standard sistema operativo unix che invia la posta.
php può eseguire programmi Unix usando le pipe. Questa funzione unix ti consente di instradare i dati da un programma a un altro, proprio come scriviamo su un file. L'unico file in questo caso è il programma (in particolare sendmail), che riceve i dati.

Il programma sendmail ha molte opzioni, ne useremo alcune. Per usare sendmail, devi aprire una pipe ad esso. In php, questo viene fatto usando il comando popen(), che è identico nella sintassi al comando fopen(). Usando popen() apriamo un flusso a sendmail
scrivere su di esso (ricordate, il parametro della modalità "w"?), dopodiché è possibile inviare dati ad esso squadra regolare fput (). Vediamo come si presenta l'intera procedura per inviare una lettera tramite sendmail:

intestazioni rfc lettere $ da = " [e-mail protetta]"; $ destinatari =" [e-mail protetta]"; $ headers =" content-type: text / plain; charset = "windows-1251" "; // apri sendmail e invia mail $ mail = popen (" / usr / sbin / sendmail -i -f $ from - $ recipients "," w "); $ text_headers =" from : $ fromnsubject: $ soggetto ". $ headers; fputs ($ mail, $ text_headers); fputs ($ mail," n "); fputs ($ mail, $ body); // verifica errori $ risultato = pclose ($ mail ) >> 8 & 0xff; if ($ risultato) echo "sendmail error! codice di errore: $ risultato ";?>

In questo programma, la prima cosa che facciamo è descrivere gli header rfc. rfc sono campi di servizio che contengono tutte le informazioni sulla lettera. Puoi vedere un esempio di rfc, ad esempio, in programmare il pipistrello!, facendo clic su clic destro punta il mouse sul testo della lettera e seleziona "rfc-822 headers" (il nome dell'elemento potrebbe essere diverso). Per rimuoverli, ripeti i passaggi. Nell'intestazione descriviamo i campi "content-type", che indicano che il messaggio è testo e nella codifica windows-1251 (standard codifica di Windows). "Koi8-r" può essere utilizzato anche come codifica, questa è la codifica standard di Unix. In questo articolo, non entreremo nel dettaglio delle possibili intestazioni rfc. Lo faremo un po' più tardi,
quando lavoreremo più da vicino con la posta. Quindi, dopo aver descritto le variabili di servizio e le intestazioni dei messaggi, apriamo sendmail. Notare il percorso del programma "/usr/sbin/sendmail". Sul server diversi potrebbe essere diverso!
Se questa linea non funziona, chiedi al tuo ISP dove si trova sendmail. Vengono specificati i seguenti parametri: "-i -f $ from - $ recipients". Questi sono i parametri standard per l'invio di una lettera e in essi vengono sostituiti due campi: $ da - da chi, $ destinatari - indirizzi dei destinatari. Nel nostro caso, la variabile $ destinatari contiene un solo indirizzo. Si possono infatti utilizzare più indirizzi, specificandoli separati da uno spazio:

$ destinatari = " [e-mail protetta] [e-mail protetta] [e-mail protetta]";

Successivamente, scriviamo nello stream prima le intestazioni del messaggio (la variabile $ text_headers), quindi le separiamo con un'interruzione di riga e scriviamo il testo del messaggio. Ultimo passo- chiusura del flusso e verifica di un errore. Se eseguito correttamente, viene inserito zero nella variabile $ risultato e, se si è verificato un errore, viene scritto il numero dell'errore.

Ora diamo un'occhiata a un esempio di utilizzo delle funzionalità di invio della posta. Per fare ciò, creeremo un modulo di feedback che puoi installare sul tuo sito. Useremo sendmail come metodo di invio della posta.

Crea un modulo di feedback

Il nostro modulo di feedback sarà uno script. Questo script visualizzerà il modulo e invierà la lettera.

contatto.php:

Risposta Errore:$ s ";?>

Comunicazione diretta
Il tuo nome: *
La tua email: *
Il tuo sito web:
Il tuo messaggio: *

I campi contrassegnati da un asterisco (*) devono essere compilati.> 8 & 0xff; ) else $ risultato = (mail ($ destinatari, $ oggetto, $ corpo, "da:". $ da. "rn". $ intestazioni)? FALSE: TRUE); if ($ risultato) echo "Il messaggio non è stato inviato!"; else echo "Grazie, il tuo messaggio è stato inviato. L'amministratore ti contatterà a breve!"; ?>

Ora diamo un'occhiata a come funziona questo programma. L'esecuzione inizia con la riga "if (! $ A) show_form ();", perché prima era stata specificata una funzione che, ovviamente, non viene eseguita. In questa riga controlliamo se c'è stato un tentativo di compilare il form (dal form, come puoi vedere, viene passata la variabile $ a, che viene spuntata in questa riga). Se non c'è tale tentativo, viene chiamata la funzione show_form(), che visualizza il form.

Di recente, ho sempre più a che fare con la mediocrità nell'IT. Gli amici cercano consigli e quando inizi a capire l'argomento, i tuoi capelli iniziano a rizzarsi in tutti i posti possibili. Scoprire quanto hanno pagato gli amici servizi simili, vivendo un attacco di shock.

Decine di migliaia di rubli vengono semplicemente buttati via e invece di semplificare, gli imprenditori hanno ulteriori problemi. Forse qualcuno vedrà i problemi della propria organizzazione nella nota e sarà in grado di trarre le conclusioni appropriate.

Ci sono persone a cui piace sgridare tutti ed esaltare la loro conoscenza. Ci sono tali "mancini" in ogni ambito. Forse hanno attraversato il fuoco, l'acqua e i tubi di rame per la loro pratica e hanno tutto il diritto di ragionare in questo modo. Nel campo della tecnologia dell'informazione, le persone che rientrano in questa descrizione sono difficili da incontrare. Ci sono troppe tecnologie ed è impossibile essere esperti di tutto.

Una persona può essere esperta in diversi settori, ma non in tutti. Ad esempio, il mio lavoro per la maggior parte del tempo è legato allo sviluppo di software. Mi sento molto più fiducioso in questo settore che nell'amministrazione del sistema. Non discuterò mai con un simpatico amministratore sulle sfumature del routing dei pacchetti, tk. Io stesso ho una conoscenza superficiale.

Non sarà difficile per me configurare i componenti del server, aumentare il FireWall o il gateway Internet, ma non cerco di dedicare tempo a uno studio dettagliato dei livelli del modello OSI. Non mi vergogno un po' di questo, tk. Sono più interessato in un'altra area.

Oggi ho avuto modo di parlare con un simile tuttofare nel campo delle banche dati. L'uomo che si definiva con orgoglio un professionista ha completamente rovinato la base della CSI e non ha nemmeno pensato di ammettere la sua colpa. Stava solo aggiornando e qualcosa è andato storto. Copia di backup prima di installare gli aggiornamenti, non ha voluto fare (davvero, perché?) e quando si presenta un problema, non si è rotto la testa. Ho appena caricato una copia di un mese fa e riportato sul lavoro svolto.

Fresco? Sono quasi caduto dalla sedia a causa di tale professionalità. Non basta che la policy non sia stata creata Copia di riserva, quindi questo artigiano non si è preso la briga di fare una copia prima di tale operazione importante come aggiornamento della struttura del database. Si è scoperto che l'oblio non è il suo problema principale.

Ho preso il telefono di questo specialista e ho deciso di chiamare di persona. Non si sa mai, improvvisamente la persona aveva delle buone ragioni per prendere questa decisione. Sarebbe meglio non chiamare. Non c'erano ragioni, ma incompetenza e mancanza di conoscenze elementari: un'intera ondata.

Ha cercato stupidamente di giustificarsi e le mie domande hanno suscitato solo sorpresa. Immagina, mi ha detto che il programma non usa tabelle. Tutto è memorizzato in un unico file. Queste parole hanno finalmente ucciso le particelle di fede in me per un esito positivo. Mi ha parlato di FireBird.

Poiché tutto è memorizzato in un file e il programma non può "leggere" questo file, devi solo tornare a vecchia copia... Perché cercare di capire il problema e almeno tirarsi fuori? Informazioni importanti direttamente dalle tabelle? Era inutile continuare la conversazione. Lo specialista ha semplicemente ucciso il lavoro delle persone in mezzo mese in un colpo solo e ha ricevuto una ricompensa.

Se la tua organizzazione non è pronta a mantenere uno specialista IT a tempo pieno, ti consiglio vivamente di occuparti di documentare la strategia di interazione con persona in arrivo... È necessario formalizzare le sue responsabilità sulla carta e disporre di un elenco delle strutture infrastrutturali di cui è responsabile.

Questo non ti salverà dai problemi, ma ti darà una chiara comprensione di ciò che una persona sta facendo e quali aree del suo lavoro richiedono maggiore attenzione. Ad esempio, se non capisci l'IT e la tua azienda dispone di database da cui dipende la vita dell'organizzazione, non essere avaro nell'acquisto programma professionale per il backup. Lascia che sia uno specialista in visita a configurarlo e riceverai rapporti giornalieri via e-mail sui risultati del backup.

Non a caso ho iniziato a parlare di software, perché in pratica, ho sentito che non tutti i professionisti IT sono pronti per automatizzare il processo di backup. O si assumono la responsabilità di fare copie da soli, oppure giocano semplicemente alla roulette russa. Di conseguenza, solo tu, il capo dell'azienda, perdi da questa situazione.

Sento la disperazione, quando sembra che tutto sia privo di significato e non porterà a nulla, al crollo della vita. Questa è la sensazione di arrendersi e tutti i pensieri o le azioni progettati per sperare o cambiare qualcosa vengono scartati come inutili. Accompagnato in me da un sentimento di solitudine, quando sembra che nessuno abbia bisogno di me con i suoi problemi e affanni.

Prima non facevo proprio niente per facilitarmi le cose, ma, al contrario, comincio a dispiacermi per me stessa, perché mi sento male, non voglio niente e niente mi piace.

Oggi mi occupo di alcune attività: per esempio, pulire la casa, giocare al computer.

Curioso come vengono vissuti i sentimenti, perché probabilmente non so come viverli.

Senza speranza.

Solo una volta nella mia vita ho provato una tale sensazione!

Avevo 15 anni.

Nella visita successiva a uno dei corsi di formazione, sono stato sopraffatto dalla persistente fiducia nelle mie capacità, ho raggiunto il successo di volta in volta ...

Ed ecco, una situazione, un compito con tre personaggi, una situazione che si sta svolgendo... banale, come mi sembrava allora.

Per me, la disperazione è mancanza di desiderio di fare qualsiasi cosa, completa depressione e indifferenza a tutto, depressione.

Non voglio provare questa sensazione, perché in un tale stato tutto cessa di essere importante per me e mi arrendo. Non scappo e lo annego.

Prima, ci convivevo e lo usavo, ma ora so che c'è una via d'uscita da ogni situazione e il VS mi aiuterà a trovarlo. Non ho prestato attenzione al fatto che fossi incline a trasmettere la sensazione di disperazione ad altre persone, ma non sempre lo ammetto con certezza, anche se nel tempo diventa ovvio. Voglio imparare a vedere la via d'uscita dalle situazioni, in modo che anche i pensieri non appaiano che non c'è via d'uscita.

La disperazione è quando non vedo una via d'uscita e mi arrendo, non voglio fare nulla, perché non vedo il punto in questo quando non c'è speranza, che, in teoria, dovrebbe morire per ultima.

Sicuramente non voglio vivere questa sensazione, ma c'è sempre una via d'uscita, proprio come nella tossicodipendenza, dalla quale non ho visto via d'uscita, ma grazie al sole e alle persone che me l'hanno mostrato, oggi ho sono sobrio, con Dio, con te. La disperazione è un sentimento duro, cerco di delegare e trovo una via d'uscita, perché non ci sono situazioni senza speranza. La fede aiuta molto. Ora so che ammettere una situazione senza speranza significa arrendersi e non fare nulla, quindi non essere pessimista. In ogni aspetto negativo, puoi trovare un aspetto positivo: c'è una via d'uscita da ogni situazione senza speranza.

Questo tutorial ti mostrerà come creare il modulo di contatto HTML più elementare.

Prima di tutto crea 2 file: contact_form.html e contatto.php... Il primo file conterrà il codice del tuo modulo di contatto e il secondo elaborerà i dati di questo modulo.

HTML

Di seguito è riportato un esempio di codice HTML Modulo di Contatto:

Il tuo nome

La tua email

Messaggio