Visualizzazione risultati 1 fino 4 di 4

Discussione: Utilizzo Libreria SwiftMailer

  1. #1
    Guest

    Predefinito Utilizzo Libreria SwiftMailer

    Salve

    Vorrei sapere cortesemente se è possibile utilizzare la libreria come da titolo su alterVista ??

    Ho uno script perfettamente funzionante in locale ma che non mi permette di inviare mail qui su remoto.

    L'errore che viene fornito è:
    OK

    Fatal error: Uncaught exception 'Swift_IoException' with message 'Connection to ssl://smtp.gmail.com:465 Timed Out' in /membri/omeromusical/library/swift/classes/Swift/Transport/StreamBuffer.php:174 Stack trace: #0 /membri/omeromusical/library/swift/classes/Swift/Transport/AbstractSmtpTransport.php(438): Swift_Transport_StreamBuffer->readLine(0) #1 /membri/omeromusical/library/swift/classes/Swift/Transport/AbstractSmtpTransport.php(315): Swift_Transport_AbstractSmtpTransport->_getFullResponse(0) #2 /membri/omeromusical/library/swift/classes/Swift/Transport/AbstractSmtpTransport.php(123): Swift_Transport_AbstractSmtpTransport->_readGreeting() #3 /membri/omeromusical/library/swift/classes/Swift/Mailer.php(79): Swift_Transport_AbstractSmtpTransport->start() #4 /membri/omeromusical/scripts/php/mailfunction.php(64): Swift_Mailer->send(Object(Swift_Message)) #5 /membri/omeromusical/contatti.php(50): inviamail('omeromusical@gm...', 'danjelupo@gmail...', 'Daniele Lupo', 'Contattaci di D...', '<html lang='it'...') #6 {main} thro in /membri/omeromusical/library/swift/classes/Swift/Transport/StreamBuffer.php on line 174
    Questa è la pagina del form

    Codice PHP:
    ?php
    session_start();
    $title='Contatti';
    define(DR,'/membri/omeromusical');
    require(DR.'/includes/costanti.php');
    require(DR.'/includes/globvar.php');
    require(DRPHP.'funzioni.php');
    require(DRINC.'header.php');
    include(DR.'/'.$lang.'/pages/testata.php');
    ?>
    <div id='content'>
    <?php
    include(DR.'/'.$lang.'/pages/sideleft.php');
    include(
    DR.'/'.$lang.'/pages/sideright.php');
    ?>
    <div id='Corpo'>
    <?php
    require (DR.'/library/swift/swift_required.php');
    require (
    DRPHP.'mailfunction.php');
    ?>
    <h6><a href='<?php echo PA.'index.php';?>'>Home</a> - Contatti</h6>
    <h1><?php Echo $title;?> </h1>
    <?php
    if ($_POST['Invio']=='Invia')
    {
    ?>
    <?php
    }
    ?>
    <div id='formmain'>
    <div id='annuncio'>
    <?php
    if ($_POST['Invio']=='Invia')
    {
    if(
    chkform()=='OK')
    {
    $cognome=$_POST['cognome'];
    $nome=$_POST['nome'];
    $email=$_POST['email'];
    $mansione=$_POST['mansione'];
    $nc=$nome." ".$cognome;
    $msg=$_POST['msg'];
    $corpo= "<html lang='it'><head><title></title></head><body>";
    $corpo.="<div id='corpo'><p>Salve mi chiamo <b>$nc</b><br/>Il mio indirizzo E-mail &egrave;: <b> $email</b><br/>";
    $corpo.="Messaggio: $msg</p></div></body></html>";
    $body=$corpo;
    echo
    "<div id='conferma' title='Esito Invio' class='popup'>";
    echo
    "<img src='".PAIMG."accept.png'. alt='OK'/>";
    echo
    "<h6>";
    echo
    inviamail(OMEROMAIL, $email, $nc, "Contattaci di $nc", $body) ;
    echo
    "</h6>";
    echo
    "</div>";
    }
    else
    {
    echo
    "<div id='conferma' title='Esito Invio' class='popup'>";
    echo
    "<img src='".PAIMG."cancel.png'. alt='Errore'/>";
    echo
    "<h6>";
    echo
    chkform();
    echo
    "</h6>";
    echo
    "<a href='javascript:history.back()'><img src='".PAIMG."goback.png' alt='Ritorna'/></a>";
    echo
    "</div>";
    }
    unset(
    $_POST['Invio']);
    }
    else
    {
    ?>
    <ul>
    <li>Vuoi saperne di pi&ugrave; sulle nostre attivit&agrave; e sulla nostra associazione ?</li>
    <li>Vuoi inviarci il tuo parere e, perch&egrave; no, le tue critiche ?</li>
    </ul>
    <p>Per queste e per qualsiasi altra informazione: compila il form con i tuoi dati, il tuo indirizzo e-mail ed il tuo messaggio<br/></p>
    <h5>il nostro staff ti risponder&agrave; appena possibile.</h5>
    </div>
    <div id='cform'>
    <form name='unisciti' action='<?php echo PA.$lang.'/contatti.php';?>' method='post'>
    <fieldset id='anagrafe' class='fsanagrafe'>
    <legend>Dati Anagrafici</legend>
    <label style='top:5%;'>Nome
    <input type='text' name='nome'>
    </label>
    <label>Cognome
    <input type='text' name='cognome'>
    </label>
    <label>Email
    <input type='text' name='email'>
    </label>
    </fieldset>
    <fieldset id='messaggio' class='fsmsg' >
    <legend>Messaggio</legend>
    <label style='top:5%; left:0%; width:100%;'>Messaggio
    <textarea rows=3 cols=20 name='msg'></textarea></label>
    </fieldset>
    <fieldset id='normativa' class='fsnorma'>
    <input type='checkbox' name='normaprivacy'>
    <label><a href="#" >Informativa Privacy</a></label>
    </fieldset>
    <fieldset id='pulsanti' class='fsbutton'>
    <input type='submit' value='Invia' name='Invio'>
    <input type='reset' value='Reset' name='Reset'>
    </fieldset>
    <input type='hidden' value='contatti' name='pagina'>
    </form>
    <?php
    }
    ?>
    </div>
    </div>
    </div>
    </div>
    <?php
    include(DR.'/'.$lang.'/pages/piede.php');
    include(
    DRINC.'footer.php');
    ?>
    e Questa è la pagina che gestisce le funzioni.
    Codice PHP:
    <?php

    function checkMail($email) {
    // elimino spazi, "a capo" e altro alle estremità della stringa
    $email = trim($email);

    // se la stringa è vuota sicuramente non è una mail
    if(!$email) {
    return
    false;
    }

    // controllo che ci sia una sola @ nella stringa
    $num_at = count(explode( '@', $email )) - 1;
    if(
    $num_at != 1) {
    return
    false;
    }

    // controllo la presenza di ulteriori caratteri "pericolosi":
    if(strpos($email,';') || strpos($email,',') || strpos($email,' ')) {
    return
    false;
    }

    // la stringa rispetta il formato classico di una mail?
    if(!preg_match( '/^[\w\.\-]+@\w+[\w\.\-]*?\.\w{1,4}$/', $email)) {
    return
    false;
    }

    return
    true;
    }
    function
    inviamail($to, $from, $from_name, $subject, $body)

    {


    // Create the Transport
    $transport = Swift_SmtpTransport::newInstance('smtp.gmail.com', 465,'ssl')
    ->
    setUsername(OMEROMAIL)
    ->
    setPassword(PSWMAIL)
    ;

    /*
    You could alternatively use a different transport such as Sendmail or Mail:

    // Sendmail
    $transport = Swift_SendmailTransport::newInstance('/usr/sbin/sendmail -bs');

    // Mail
    $transport = Swift_MailTransport::newInstance();
    */
    $dest=array($from => $from_name);
    $soggetto=$subject;
    // Create the Mailer using your created Transport
    $mailer = Swift_Mailer::newInstance($transport);
    // Create a message
    $corpo= $body;
    $message = Swift_Message::newInstance()
    ->
    setCharset('iso-8859-1')
    ->
    setSubject($soggetto)
    ->
    setFrom($dest)
    ->
    setTo(array(OMEROMAIL => 'OmeroMusical'))
    ->
    setBody($corpo, 'text/html')
    ;
    // Send the message
    $result = $mailer->send($message);
    $headers = $message->getHeaders();
    echo
    $result;


    return
    $result;
    }
    function
    chkform()
    {
    if (!(
    $_POST['normaprivacy']))
    {
    $result= "Accettare L'Informativa sulla Privacy";
    }

    elseif(
    $_POST['nome']=='')
    {
    $result= "Inserire un Nome";}
    elseif (
    $_POST['cognome']=='')
    {
    $result= "Inserire il Cognome";
    }
    elseif ((empty(
    $_POST['email'])) ||(!(checkMail($_POST['email']))))
    {
    $result= "Email mancante o formato non corretto";
    }
    elseif((
    $_POST['pagina']=='unisciti')&&($_POST['mansione']==''))
    {
    $result= "Inserire una mansione";}
    elseif (
    $_POST['msg']=='')
    {
    $result= "Inserire il messaggio";
    }
    else
    {
    $result= "OK";
    }
    return
    $result;
    }
    ?>
    Grazie Daniele
    Ultima modifica di omeromusical : 09-05-2012 alle ore 14.40.26

  2. #2
    karl94 non è connesso Staff AV
    Data registrazione
    03-10-2005
    Messaggi
    17,745

    Predefinito

    Dal messaggio di errore noto che cerca di instaurare una connessione verso la porta 465, su AlterVista è possibile aprire connessioni solo verso le porte 80 e 443.

  3. #3
    Guest

    Predefinito

    Salve Karl, grazie per la risposta.
    Io avevo provato anche ad utilizzare l'smtp di alice (dove ho un account) ma anche li dava errore (ora ho scoperto che cercava di comunicare con la porta 25 quindi è lo stesso problema).

    L'unica soluzione allora è utilizzare la funzione mail standard di PHP ??

  4. #4
    karl94 non è connesso Staff AV
    Data registrazione
    03-10-2005
    Messaggi
    17,745

    Predefinito

    Esattamente.

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •