Bonjour,
J'ai réalisé un petit code pour envoyer des mails, mais quand je les envoies ils arrivent bien mais ne prennent pas en compte le style et mon image , comment faire cela?.
voici mes fichier :
controller.php
public function loadTwig() {
$loader = new Twig_Loader_Filesystem('MVC/view'); //folder wich contain the template
$twig = new Twig_Environment($loader, array(
'cache' => false,
'charset' => "utf-8",
'debug' => true
));
//for enabled the dump in twig = to var_dump in php
$twig->addExtension(new Twig_Extension_Debug());
return $twig;
}
public function sendEmail($tabEmail) {
var_dump($tabEmail);
if($_SERVER['SERVER_NAME'] == 'localhost'){
$transport = new Swift_SmtpTransport('smtp.gmail.com', 465, 'ssl');
$transport->setUsername('******@gmail.com');
$transport->setPassword('********');
}
else{
$transport = new Swift_MailTransport();
}
$mailer = new Swift_Mailer($transport);
$message = (new Swift_Message($tabEmail['subject']))
->setFrom(['*******@gmail.com'])
->setTo([$tabEmail['email'] => $tabEmail['name'])
->setContentType("text/html")
->setCharset('utf-8')
->setBody($tabEmail['message']);
$result = $mailer->send($message);
}
public function viewEmail() {
if(isset($_POST['submit'])) {
$name = $_POST['name'];
$email = $_POST['email'];
$subject = $_POST['subject'];
$message = $_POST['message'];
$templateEmail = $this->loadTwig()->loadTemplate('email.html.twig');
$emailUser = $templateEmail->render(array(
"email" => $email,
"message" => $message,
));
$tabEmail = array(
"name" => $name,
"email" => "******@gmail.com",
"subject" => $subject,
"message" => $emailUser
);
$this->sendEmail($tabEmail);
}
$templateIndex = $this->loadTwig()->loadTemplate('default.html.twig');
return $templateIndex->render(array());
}
}
email.html.twig
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title> envoyer un mail </title>
<link rel="stylesheet" href="vendor/bootstrap/css/bootstrap.css">
</head>
<body>
<div class="container">
<div class="row">
<div class="col-md-12">
<div class="jumbotron" style="background-color: brown; color: black">
<center><h2 style="font-weight: bold; margin-top: 10%">Send By {{ email }}</h2></center>
<div class="row">
<div class="col-md-12">
<center>
<br>
<p>
{{ message }}
</p>
</center>
</div>
<div class="col-md-12">
<center><img src="img/jo2024.png" alt="" style="width: 12%;"></center>
</div>
</div>
</div>
</div>
</div>
</div>
</body>
</html>
Salut,
C'est normal que tes images et css ne se chargent pas, il faut mettre l'url complet vers la ressource (avec le l'url de ton site) ;)
Au plaisir,