Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it
    Registrato dal
    Oct 2014
    Messaggi
    28

    phpmailer non invia mail

    Ciao a tutti
    Sto provando a realizzare una pagina dove un cliente compilando un modulo può richiedere un preventivo.
    Ho provato sia da locale che da altervista, solo che una volta inoltrato il modulo mi escono questi errori:




    Locale:
    Warning: stream_socket_enable_crypto(): this stream does not support SSL/crypto in C:\xampp\htdocs\SITI WEB\Termosanitaria Sebina\PHPMailer\class.smtp.php on line 338


    Altervista:
    Fatal error: require_once() [function.require]: Failed opening required 'phpmailer/class.phpmailer.php' (include_path='.:') in/membri/sebinacommerce/preventivi.php on line 30


    N.B: la cartella e i file di phpmailer erano già caricati sul mio account di altervista prima che mi desse errore




    Qui sotto il codice della pagina
    codice:
    <?php
    	function form(){ ?>
    		<form id="preventivi_form" name="form_email" enctype="multipart/form-data" action="?page=Preventivi&tag=I" method="POST">
    			<div>
    				<Label>Nome e cognome</label>
    				<input name="input_mittente" type="text" value="" maxlength="200" required/>
    			</div>
    			<div>
    				<Label>e-Mail</label>
    				<input type="email" name="input_email" autocomplete="on" value="" placeholder="es: termosanitariasebina@alice.it" required>
    			</div>
    			<div>
    				<Label>Inserisci una descrizione</label>
    				<textarea name="textarea_descrizione" required></textarea>
    			</div>
    			<!--<div id="preventivi_fileUpload">
    				<div>
    					Allegati
    					<input name="input_file" multiple type="file" value="Allegati" class="upload"/>
    				</div>
    				<Label class="allegati">Allegato 1</label>
    				<Label class="allegati">Allegato 2</label>
    			</div>-->
    			<input name="submit_invia_dati" type="submit" value="Invia" class="submit"/>
    		</form>
    <?php	
    	}
    	
    	function invio_richiesta(&$email,&$mittente,&$descrizione){//,&$file){
    		require_once ("phpmailer/class.phpmailer.php");
    		require_once ("phpmailer/class.smtp.php");
    
    
    		$messaggio = new PHPmailer();
    		
    		$messaggio->IsSMTP();
    		$messaggio->SMTPDebug = 0;
    		$messaggio->SMTPAuth = true;
    		$messaggio->SMTPSecure = 'tls';
    		$messaggio->Host = 'smtp.gmail.com';
    		$messaggio->Port = 587;
    		$messaggio->Username = 'mail@gmail.com';
    		$messaggio->Password = 'password'; 
    		
    		$messaggio->SetFrom($email,$mittente);
    		$messaggio->AddReplyTo($email,$mittente);
    		$messaggio->AddAddress('email@domain.ext');
    		$messaggio->Subject = "Richiesta preventivo";
    		$messaggio->Body = $descrizione;
    		$messaggio->IsHTML(true);
    		
    		if($messaggio->Send()){
    			echo"	<p class='preventivi_invio_richiesta'>Richiesta inviata con successo</p>
    					<br/>
    					<a  class='preventivi_torna_al_modulo' href='?page=Preventivi'>Torna al modulo</a>";
    		}
    		else{
    			echo"	<p class='preventivi_invio_richiesta'>Impossibile inviare la richiesta. Ci scusiamo per l'inconveniente</p>
    					<br/>
    					<a  class='preventivi_torna_al_modulo' href='?page=Preventivi'>Torna al modulo</a>
    					<br/><br/>";
    			echo $messaggio->ErrorInfo; 
    		}
    		
    		$messaggio->SmtpClose();
    		unset($messaggio);
    	}
    
    
    	function preventivi(&$tag,&$email,&$mittente,&$descrizione){//,&$file){
    		echo"<div id='preventivi_titolo'><h1>Richiedi ora il tuo preventivo gratuito!</h1></div>
    		<div id='preventivi_guida'>
    			<p class='guida'>...</p>
    			<p class='note_legali'>...</p>
    		</div>
    		<div class='preventivi_div_richiesta'>";
    
    
    		switch($tag){
    			case "":form();break;
    			case "I":invio_richiesta($email,$mittente,$descrizione);//,$file);
    		}
    		echo"</div>";
    	}
    ?>



    Grazie a tutti in anticipo
    Ultima modifica di Andrea44; 25-03-2015 a 17:54

  2. #2
    Mi sa che c' è un po' di casino a queste righe:
    Codice PHP:
    function invio_richiesta(&$email,&$mittente,&$descrizione){//,&$file){
    function preventivi(&$tag,&$email,&$mittente,&$descrizione){//,&$file){ 

    leva le &
    Ultima modifica di camionistaxcaso; 26-03-2015 a 21:39

  3. #3
    Utente di HTML.it
    Registrato dal
    Oct 2014
    Messaggi
    28
    Le & sono corrette, indicato che i parametri sono puntatori delle variabili passate alla funzione

    http://php.net/manual/en/language.references.pass.php

  4. #4
    Utente di HTML.it
    Registrato dal
    Oct 2014
    Messaggi
    28
    Problema risolto

    Per chi avesse il mio stesso problema, bisogna abilitare PHP OpenSSL. Per farlo basta aprire il file php.ini e su

    ; extension=php_openssl.dll

    rimuovere ;

    extension=php_openssl.dll

    (http://stackoverflow.com/questions/14978459/warning-stream-socket-enable-crypto-this-stream-does-not-support-ssl-crypto
    )


    in più bisogna abilitare google al sito https://www.google.com/settings/security/lesssecureapps per far accedere all'account applicazioni esterne
    Ultima modifica di Andrea44; 01-04-2015 a 17:50

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.