[PHP] Invio mail da form dubbio

paloppa

Utente Attivo
26 Feb 2018
68
0
6
26
Salve a tutti, sono sempre io a irrompere durante le vostre giornate di lavoro e/o programmazione.

Ho un dubbio riguardante l'invio di una mail tramite form.

Ho sempre la solita pagina con il solito form , all'interno del quale gli utenti inseriscono determinati campi, tra cui nome, cognome, email ecc e inviano questa richiesta.

Il mio dubbio è se si può inviare una mail anche se io sto lavorando in locale.

Ho letto qui una guida dove c'era scritto di inserire nel form il metodo action con dentro l'email e il metodo di tipo post, ma non so se questo vale anche per il locale.

Avete consigli??

Grazie a tutti
 

paloppa

Utente Attivo
26 Feb 2018
68
0
6
26
Certo!
WP anche se in locale invia le email....
a patto che tu sia connesso...
https://developer.wordpress.org/reference/functions/wp_mail/
Ho provato ad utilizzare la funzione wp_mail all'interno del mio file php. Questo è l'estratto di codice
if($_POST['invia']){

$res=mysqli_query($connessione,$query);
$to="*******@gmail.com";
$subject="Soggiorno dal".$_POST['data_arrivo'];
$message=$oggetto;
wp_mail($to, $subject, $message);

}


Ma non risulta arrivarmi nessuna mail. Ovviamente al posto delle * c'è la mia mail che per motivi di privacy non ho deciso di mostrare
 

macus_adi

Utente Attivo
5 Dic 2017
1.076
61
48
IT/SW
Un minimo di configurazione l'hai fatta?
Leggi la documentazione per inviare i messaggi con smtp....
 

paloppa

Utente Attivo
26 Feb 2018
68
0
6
26
Un minimo di configurazione l'hai fatta?
Leggi la documentazione per inviare i messaggi con smtp....
Ho configurato cosi
add_action( 'phpmailer_init', 'mailer_config', 10, 1);
function mailer_config(PHPMailer $mailer){
$mailer->IsSMTP();
$mailer->Host = "smtp.gmail.com"; // your SMTP server
$mailer->Port = 25;
$mailer->SMTPDebug = 2; // write 0 if you don't want to see client/server communication in page
$mailer->CharSet = "utf-8";
}

ma niente ancora
 

paloppa

Utente Attivo
26 Feb 2018
68
0
6
26
prova a vedere qui, c'è uno zip che contiene i parametri per vari servizi di posta tra cui gmail,
c'e' anche lo script che esegue l'invio, giusto per avere un esempio
https://forum.mrwebmaster.it/threads/linvio-della-posta-elettronica-ed-il-servizio-offerto-da-vari-provider.40100/#post-158302
Grazie della risposta marino51.

Ho visto un video dove mi faceva modificare dei parametri sul file sendmail.ini e su php.ini. Ho modificato i parametri inserendo i miei dati , e mi sono arrivate alcune mail. Adesso però non funziona piu, non mi invia piu le mail. E' possibile che ci sia un limite giornaliero?

Nello specifico , dopo aver modificato i parametri nei due file .ini , ho usato la funzione mail() inserendo dentro i vari valori


EDIT: adesso funziona, soltanto che ho alcuni dubbi. La mail che viene inviata proviene da me e arriva a me, cioè io sono sia il mittente che il destinatario. Non è possibile che il mittente sia l'email della persona che sta inviando il form?

Altra cosa, nei file .ini ho specificato la password e la mail. Non c'è un modo in cui la password non viene scritta da nessuna parte?
 

macus_adi

Utente Attivo
5 Dic 2017
1.076
61
48
IT/SW
ho usato la funzione mail()
@paloppa utilizza la notazione ad oggetti (wp è scritto con il paradigma oop), usa plugin esterni e non reinventare la ruota...
La modifica dei file ini non è assolutamente necessaria, quale hosting ti permetterebbe di effettuare una modifica così? Fai te, ma stai rendendo una cosa semplice molto complicata.... Se proprio cambia i parametri di wp_mail, altrimenti ad ogni progetto dovresti modificare le configurazioni del server....
Basta fare 1 configurazione e definire una funzione....
https://gist.github.com/butlerblog/c5c5eae5ace5bdaefb5d
 

marino51

Utente Attivo
28 Feb 2013
2.644
134
63
Lombardia
Altra cosa, nei file .ini ho specificato la password e la mail. Non c'è un modo in cui la password non viene scritta da nessuna parte?
io preferisco non modificare il file php.ini, se non strettamente necessario,
ma uno script incluso, attiva i nuovi parametri
PHP:
    ini_set("SMTP"     ,$eM_Host);
    ini_set("smtp_port",$eM_Port);
    ini_set("username" ,$eM_Username);
    ini_set("password" ,$eM_Password);
come si fa con i parametri della connessione al db
attenzione, questi sono parametri per la funzione mail di php
con phpmailer la logica è la stessa con sintassi differente
 

marino51

Utente Attivo
28 Feb 2013
2.644
134
63
Lombardia
comunque meglio usare phpmailer, è più facile gestire i parametri e gli eventuali allegati
per quanto riguarda il mittente, puoi usare un nome diverso ma qualche servizio mail non lo passa

ti conviene creare un mittente specifico (per esempio su gmail) che usi per l'invio
mentre nel "reply-to" puoi mettere l'indirizzo di chi sta compilando il form in modo che, rispondendo al messaggio ricevuto, si apra il nuovo messaggio con l'indirizzo correttamente impostato
 

paloppa

Utente Attivo
26 Feb 2018
68
0
6
26
@marino51 @macus_adi

In tutti i casi, è necessario andare a specificare l'email e la password alla quale bisogna mandare il messaggio vero? non è possibile non andare a compilare questi campi?

Mi viene questo dubbio soprattutto per una questione di privacy e sicurezza, perchè se qualcuno riesce ad entrare in questi file di configurazione, andrebbe a leggere la mia password dell'email per esempio.
 

macus_adi

Utente Attivo
5 Dic 2017
1.076
61
48
IT/SW
@paloppa Non capisco di cosa ti stai preoccupando...
Seguendo il filo logico, tu dichiari delle variabili in un file php.... Se qualcuno riesce a leggere i file (quindi l'ha scaricato e/o ha caricato sulla tua applicazione una backdoor) hai una falla di sicurezza, e non di certo va analizzata all'interno di un plugin....
Ripeto, prima di procedere vedi bene cosa devi fare...
se tu lanci da browser il file wp-config.php cosa leggi?? Niente perchè dichiari solo delle variabili e non mandi in output nulla...
PHP è un linguaggio interpretato... occhio che stai mischiando un pò di roba...
 

marino51

Utente Attivo
28 Feb 2013
2.644
134
63
Lombardia
In tutti i casi, è necessario andare a specificare l'email e la password alla quale bisogna mandare il messaggio vero? non è possibile non andare a compilare questi campi?
potrebbe essere possibile se utilizzi il servizio mail di invio dello stesso provider ADSL, con TIM funziona, con altri non ho provato (Infostrada , ecc.)

andrebbe a leggere la mia password dell'email per esempio
si ... vero, per questa ragione è meglio sottoscrivere un servizio mail ad hoc (vedi gmail, ma anche altri) in modo da poterlo abbandonare in caso di furto delle credenziali