2016-01-11 12 views
5

Sono nuovo nel server di dominio namecheap. Sto cercando di inviare una semplice mail su quel server namecheap. Non inviava posta e restituiva un valore vuoto, non un errore.La funzione PHP mail() non funziona nel server namecheap

Ecco il mio codice di esempio.

$to = "[email protected]"; 
$subject = "HTML email"; 
$message = "Hello this is testing mail"; 

// Always set content-type when sending HTML email 
$headers = "MIME-Version: 1.0" . "\r\n"; 
$headers .= "Content-type:text/html;charset=UTF-8" . "\r\n"; 

// More headers 
$headers .= 'From: <[email protected]>' . "\r\n"; 
$headers .= 'Cc: [email protected]' . "\r\n"; 

if(mail($to,$subject,$message,$headers)) 
{ 
    echo "Mail sent...";  
} 
else 
{ 
    echo "Mail not sent"; 
} 

Supponiamo che io assegnare $ a $ e da mailID all'interno di un server di posta poi inviata con successo la posta namecheap.

Esempio:

$to='[email protected]' 
$from='[email protected]' 

Ma io sto cambiando la posta $ a $ O da in server di Gmail come [email protected] allora non invierà una e-mail ed è anche il ritorno valore vuoto senza errori. Come risolvere.

Da (Not receiving email from the PHP mail() method) Solo domini ospitati sui nostri server possono essere utilizzati nel campo "Da". Qualsiasi dominio che non è ospitato da noi non può essere aggiunto al campo "Da". Abbiamo dovuto prendere questa misura per impedire l'invio di spam utilizzando forum, libri degli ospiti e script dei moduli di contatto. Affinché gli script del tuo sito funzionino correttamente, devi impostare il campo "Da" sull'account di posta elettronica che è stato creato nel tuo cPanel.

È correlato al mio problema ma non so come "impostare" Dal campo "all'account di posta elettronica nel mio cPanel".

+1

Si dovrebbe verificare [PHPMailer] (https://github.com/PHPMailer/PHPMailer), si otterrà gli errori più descrittivi. – Darren

+0

Quale numero di debug stai usando per controllare l'errore? –

+0

error_reporting (E_ALL); ini_set ('display_errors', 1); Nessun messaggio di errore nel log degli errori di PHP. –

risposta

3

Darren ha ragione. Sto cambiando la funzione PHP mail() al metodo mail() PHPMailer. Link download - https://github.com/PHPMailer/PHPMailer Ora la mail è stata inviata con successo. Grazie ai commenti. Ecco codice di risposta:

require 'class.phpmailer.php'; 

$mail = new PHPMailer; 

$mail->Host = 'smtp1.example.com'; // Specify main and backup SMTP servers 
$mail->SMTPAuth = true;        // Enable SMTP authentication 
$mail->Username = '[email protected]';     // SMTP username 
$mail->Password = 'secret';       // SMTP password 
$mail->SMTPSecure = 'tls';       // Enable TLS encryption, `ssl` also accepted 
$mail->Port = 587;         // TCP port to connect to 

$mail->setFrom('[email protected]', 'Mailer'); 
$mail->addAddress('[email protected]', 'Rama Lingam');  // Add a recipient 
$mail->addAddress('[email protected]');    // Name is optional 
$mail->addReplyTo('[email protected]', 'Information'); 
$mail->addCC('[email protected]'); 
$mail->addBCC('[email protected]'); 

$mail->isHTML(true); 

$mail->Subject = 'Here is the subject'; 
$mail->Body = 'This is the HTML message body <b>in bold!</b>'; 
$mail->AltBody = 'This is the body in plain text for non-HTML mail clients'; 

if(!$mail->send()) { 
    echo 'Message could not be sent.'; 
    echo '<br>Mailer Error: ' . $mail->ErrorInfo; 
} else { 
    echo 'Message has been sent'; 
} 
Problemi correlati