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 è: <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ù sulle nostre attività e sulla nostra associazione ?</li>
<li>Vuoi inviarci il tuo parere e, perchè 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à 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