Hello,
J'ai ce code qui me permets d'envoyer un email
function index(){
if($this->request->is('post')){ // || $this->request->is('put')
// Check if password are egual
$data = $this->request->data;
if($this->Contact->save($data)){
App::uses('CakeEmail','Network/Email');
$mail = new CakeEmail();
// Confirmation
$mail->from($this->Session->read('Site.email'))
->to($data'Contact']'email'])
->subject('Confirmation')
->emailFormat('both')
->template('emailconfirmation')
->viewVars(array('firstname'=>$data'Contact']'firstname'],'lastname'=>$data'Contact']'lastname'],'content'=>$data'Contact']'content']))
->send();
//$mail = new CakeEmail();
// Sent to the
$mail->from($data'Contact']'email'])
->to($this->Session->read('Site.email'))
->subject('New message sent from your website contact page')
->emailFormat('both')
->template('emailform')
->viewVars(array('firstname'=>$data'Contact']'firstname'],'lastname'=>$data'Contact']'lastname'],'content'=>$data'Contact']'content'],'email'=>$data'Contact']'email']))
->send();
$this->Session->setFlash("Your message have been successfully sent",'notif');
unset($this->request->data);
//$this->redirect(array('action'=>'index'));
}else{
$this->Session->setFlash("Your message could not be sent",'notif',array('type'=>'danger'));
}
}
}
Il a toujours bien fonctionner. Je veins de passer mes fichiers sur un serveur, préparer par un collègue. L'ensemble semble bien fonctionner jusqu'à ce que j'envoi un message via e formulaire.
Et.... mauvais message. Internal erreur
Could not send email.
Error: An Internal Error Has Occurred.
Stack Trace
CORE/Cake/Network/Email/MailTransport.php line 51 ? MailTransport->_mail(string, string, string, string, null)
CORE/Cake/Network/Email/CakeEmail.php line 1122 ? MailTransport->send(CakeEmail)
APP/Controller/ContactsController.php line 21 ? CakeEmail->send()
[internal function] ? ContactsController->index()
CORE/Cake/Controller/Controller.php line 490 ? ReflectionMethod->invokeArgs(ContactsController, array)
CORE/Cake/Routing/Dispatcher.php line 185 ? Controller->invokeAction(CakeRequest)
CORE/Cake/Routing/Dispatcher.php line 160 ? Dispatcher->_invoke(ContactsController, CakeRequest, CakeResponse)
APP/webroot/index.php line 114 ? Dispatcher->dispatch(CakeRequest, CakeResponse)
Avez-vous la moindre idée pourquoi ce message apparait alors qu'il ne le fait pas en local ou chez mes hébergeurs?
je pense notre propre serveur a surement un truc de ne pas actif.
Une idée?
Pour info
class EmailConfig {
public $default = array(
'transport' => 'Mail',
'from' => 'pierre.xxxx@ccc.eeee.ch',
'charset' => 'utf-8',
'headerCharset' => 'utf-8'
);
/*
public $smtp = array(
'transport' => 'Smtp',
'from' => array('pierre.xxxxx@ccc.eeee.ch' => 'ET - ST'),
'host' => 'mail.eeee.ch',
'port' => 25,
'timeout' => 30,
'username' => 'username',
'password' => 'secret',
'client' => null,
'log' => false,
'charset' => 'utf-8',
'headerCharset' => 'utf-8'
);
*/
}
Milles mercis
Hello.
Sur mon serveur Ubuntu, j'ai installé postfix
#sudo apt-get install postfix
, et ca résolu mon problème
https://help.ubuntu.com/community/Postfix
Salut, je ne suis pas un expert mais sais-tu si ton hébergement dispose d'un serveur stmp.
Bonjour,
La première chose à faire avant de remettre en cause ton code est de faire un envoi bateau de mail sur ton serveur sur une page qui n'utilise pas cakephp.
<?php
// Destinataire
$to = "monmaildedestination@mail.fr";
// Sujet
$subject = 'test mail';
// Message
$message = '
<html>
<head>
<title>Test mail</title>
</head>
<body>
<table width="100%" border="0" cellspacing="0" cellpadding="5">
<tr>
<td align="center">
<p>
test mail
</p>
<p>
:) dance
</p>
</td>
</tr>
</table>
</body>
</html>
';
// Pour envoyer un mail HTML, l en-tête Content-type doit être défini
$headers = "MIME-Version: 1.0" . "\n";
$headers .= "Content-type: text/html; charset=utf-8" . "\r\n";
// En-têtes additionnels
$headers .= 'From: Mail de test <no-reply@monsitedetest.com>' . "\r\n";
// Envoie
$resultat = mail($to, $subject, $message, $headers);
?>
Si ce mail n'est pas reçu, c'est une erreur serveur. Si le mail est reçu il faudra alors te pencher sur ton code. Tu pourras commencer par regarder le contenu de $mail
++