Linux – La funzione PHP Mail è disabilitata su Hosting condiviso.

In questa guida si vede come ovviare alla funzione PHP Mail disabilitata su Hosting condiviso con soluzioni simili. La funzione PHP Mail è spesso usata per generare spam incontrollato soprattutto su siti creati con CMS come WordPress o Joomla senza le apposite precauzioni di verifica sull'invio email, non sono invece coinvolti gli stack LAMP dei server dedicati o dei server virtuali.

Usare CodeIgniter Framework

Se l'applicazione usa il Framework Coldelgniter puoi ovviare al problema email con questo semplice codice. Per le funzionalità complete consulta la documentazione su www.codeigniter.com/docs.

 

$this->load->library(’email’);
$this->email->from(‘noreply@momit.eu’, ‘Momit SRL’);
$this->email->to($email); // $email = “email_id”
$this->email->subject(‘Benvenuto in Momit.’);
$this->email->message(‘<html>
<head>
</head>
<body>
<p><b>Qui scrivi il contenuto della tua email..</b></p>
</body>
</html>’);
$this->email->send();


Usare la libreria PEAR

La libreria PEAR  ha integrata anche la funzione di  gestione invio mail e supporta l'autenticazione  SMTP  usando un account esistente definito sul dominio.

 

include(‘Mail.php’); // funzione PEAR Mail

$headers = array (‘From’ => $from, ‘To’ => $to, ‘Subject’ => $subject);
// intestazione mail

$smtp = Mail::factory(‘smtp’, array (‘host’ => “localhost”, ‘auth’ => true,
username’ => $username, ‘password’ => $password, ‘port’ => ‘587’));
// parametri SMTP

$mail = $smtp->send($to, $headers, $body); // invio della mail

 

Usare SwiftMailer

SwiftMailer è un'altro metodo per inviare email dal proprio sito. Anche in questo caso supporta l'autenticazione  SMTP  usando un account esistente definito sul dominio.

 

$mailer = Swift_Mailer::newInstance($transport);
$transport->setUsername(‘no_reply@momit.eu’);
$transport->setPassword(‘password_account’);
$message = Swift_Message::newInstance();
$message->setSubject(‘Oggetto della e-mail’);
$message->setFrom(array(‘noreply@momit.eu’ => ‘Nome Mittente’));
$message->setTo(array($email));
$message->addPart(‘<p>Se necessario abilitare <b>HTML nel corpo mail usa 
addPart()</b></p>’, ‘text/html’);
$result = $mailer->send($message); // restituisce FALSE se l'invio fallisce
 

Usare SendGrid

SendGrid è un servizio esterno che permette di inviare migliaia di email via HTTP semplicemente creando un account ed integrando una API Key. Per la documentazione completa consultare www.sendgrid.com

 

$sendgrid = new SendGrid($api_user, $api_key);
$email = new SendGridEmail();

$email->addTo("no_reply@momit.eu")
->setFrom("no_reply@momit.eu")
->setSubject("Oggetto del messaggio")
->setHtml("corpo del messaggio, può contenere HTML");

$sendgrid->send($email); 

Non riesci a configurare l'invio email dal tuo sito PHP ?

Contatta il nostro supporto tecnico via chat o contattaci tramite l'area dedicata