L'envoi d'e-Mail HTML résultats dans des e-mails afficher la source HTML (Codeigniter Classe Email)

Je vais avoir des problèmes avec l'e-mail envoyé via le mail de classe dans Codeigniter l'affichage de la source de code HTML dans le message au lieu du rendu HTML de la vue. Pour les tests, je suis actuellement CI sur XAMPP sous Windows, et à l'aide de SMTP de Gmail pour envoyer à la même adresse gmail.

La fonction qui envoie l'e-mail est la suivante:

$config = Array(
'protocol' => 'smtp',
'smtp_host' => 'ssl://smtp.googlemail.com',
'smtp_port' => 465,
'smtp_user' => '[email protected]',
'smtp_pass' => 'mygmailpassword',
);
$this->load->library('email', $config); 
$this->email->from($this->config->item('webmaster_email', 'tank_auth'), $this->config->item('website_name', 'tank_auth'));
$this->email->reply_to($this->config->item('webmaster_email', 'tank_auth'), $this->config->item('website_name', 'tank_auth'));
$this->email->to($email);
$this->email->subject(sprintf($this->lang->line('auth_subject_'.$type), $this->config->item('website_name', 'tank_auth')));
$this->email->message($this->load->view('email/'.$type.'-html', $data, TRUE));
$this->email->set_alt_message($this->load->view('email/'.$type.'-txt', $data, TRUE));
$this->email->set_newline("\r\n"); //require this, otherwise sending via gmail times out
$this->email->send();

Il n'y a pas de problème pour obtenir la version texte envoyé. Le point de vue de chargement est un fichier html qui vous seront envoyés par courriel.

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head><title>Welcome to <?php echo $site_name; ?>!</title></head>
<body>
<div style="max-width: 800px; margin: 0; padding: 30px 0;">
<table width="80%" border="0" cellpadding="0" cellspacing="0">
<tr>
<td width="5%"></td>
<td align="left" width="95%" style="font: 13px/18px Arial, Helvetica, sans-serif;">
<h2 style="font: normal 20px/23px Arial, Helvetica, sans-serif; margin: 0; padding: 0 0 18px; color: black;">Welcome to <?php echo $site_name; ?>!</h2>
Thanks for joining <?php echo $site_name; ?>. We listed your sign in details below, make sure you keep them safe.<br />
To verify your email address, please follow this link:<br />
<br />
<big style="font: 16px/18px Arial, Helvetica, sans-serif;"><b><a href="<?php echo site_url('/auth/activate/'.$user_id.'/'.$new_email_key); ?>" style="color: #3366cc;">Finish your registration...</a></b></big><br />
<br />
Link doesn't work? Copy the following link to your browser address bar:<br />
<nobr><a href="<?php echo site_url('/auth/activate/'.$user_id.'/'.$new_email_key); ?>" style="color: #3366cc;"><?php echo site_url('/auth/activate/'.$user_id.'/'.$new_email_key); ?></a></nobr><br />
<br />
Please verify your email within <?php echo $activation_period; ?> hours, otherwise your registration will become invalid and you will have to register again.<br />
<br />
<br />
<?php if (strlen($username) > 0) { ?>Your username: <?php echo $username; ?><br /><?php } ?>
Your email address: <?php echo $email; ?><br />
<?php if (isset($password)) { /* ?>Your password: <?php echo $password; ?><br /><?php */ } ?>
<br />
<br />
Have fun!<br />
The <?php echo $site_name; ?> Team
</td>
</tr>
</table>
</div>
</body>
</html>

Toute idées sur la façon d'obtenir les e-mails HTML envoyé pour être rendus au lieu d'afficher son code source?

  • Vous ne pouvez pas avoir de PHP dans un courriel du corps. Je ne suis pas aussi sûr que vous avez besoin de la <html> ou <body> balises.
  • Le PHP génère le code HTML qui est envoyé, il n'est pas réellement dans le corps de l'email.
  • N'est-ce pas le deuxième segment de code HTML dans l'e-mail? Il est PHP là. Évidemment, le premier segment de code est la génération.
InformationsquelleAutor Nyxynyx | 2011-06-08