2017-07-18 4 views
0

J'essaie d'envoyer un email interactif à mes clients. Dans le code ci-dessous, la page content.html contient le contenu du corps de l'e-mail qui contient uniquement le html et le css. sendmail.php enverra l'e-mail à l'adresse e-mail des destinataires.comment envoyer un email interactif

L'e-mail est envoyé avec succès par le sendmail.php mais dans le courrier électronique, le corps html ne fonctionne pas comme prévu.

corps de l'e-mail devrait fonctionner comme dans cet exemple: https://codepen.io/freshinbox/pen/worqww

Mais l'affichage e-mail comme ceci: sample image

J'ai essayé avec les deux comptes gmail et hotmail, mais le résultat est le même.

content.html

<html> 
<head> 
<style> 
.keybox{ 
display:inline-block; 
border:10px solid black; 
} 
.keybox label{ 
width:65px; 
height:55px; 
display:none; 
padding-top:5px; 
font-size:40px; 
text-align:center; 
} 
#key1a:checked ~ .kinetic .box1 label:nth-child(2){ 
display:block; 
} 
#key1b:checked ~ .kinetic .box1 label:nth-child(3){ 
display:block; 
} 
#key1c:checked ~ .kinetic .box1 label:nth-child(4){ 
display:block; 
} 
#key1d:checked ~ .kinetic .box1 label:nth-child(1){ 
display:block; 
} 
</style> 


</head> 
<body> 

<input id="key1a" name="key1" type=radio> 
<input id="key1b" name="key1" type=radio> 
<input id="key1c" name="key1" type=radio> 
<input id="key1d" name="key1" type=radio checked><BR> 
<div class="kinetic"> 
<div class="keybox box1"> 
    <label for="key1a">X</label> 
    <label for="key1b">G</label> 
    <label for="key1c">H</label> 
    <label for="key1d">A</label> 
</div> 
</div>  
</body> 
</html> 

sendmail.php

<?php 
if(($Content = file_get_contents("content.html")) === false) { 
    $Content = ""; 
} 

$FromName = "Sample"; 
$FromEmail = "[email protected]"; 
$ReplyTo = "[email protected]"; 
$ToEmail = "[email protected]"; 
$Subject = "Test"; 

$Headers = "MIME-Version: 1.0\n"; 
$Headers .= "Content-type: text/html; charset=iso-8859-1\n"; 
$Headers .= "From: ".$FromName." <".$FromEmail.">\n"; 
$Headers .= "Reply-To: ".$ReplyTo."\n"; 
$Headers .= "X-Sender: <".$FromEmail.">\n"; 
$Headers .= "X-Mailer: PHP\n"; 
$Headers .= "X-Priority: 1\n"; 
$Headers .= "Return-Path: <".$FromEmail.">\n"; 

if(mail($ToEmail, $Subject, $Content, $Headers) == false) { 
    echo "ERRRO!"; 
} 
else{ 
    echo "OK!"; 
} 
?> 
+0

Vous ne pouvez pas inclure de feuille de style incorporée ou incluse dans les e-mails. Vous devez l'avoir en ligne. Compte tenu de votre contenu, vous ne pouvez pas envoyer de contenu interactif de cette façon. –

+0

Utilisez 'inline-css' pour ajouter du style dans votre code HTML. Vous ne pouvez pas utiliser css comme ceci lors de l'envoi de mails. –

+0

@PraveenKumar regardez [ceci] (https://www.emailonacid.com/blog/article/email-development/code-tutorial-how-to-build-an-interactive-puzzle-in-email?utm_referrer=freshinbox .com) exemple. Ils disent que nous pouvons envoyer des courriels interactifs. –

Répondre

1

Certains navigateur ne supporte pas certaines des règles CSS que vous avez utilisé, par exemple:

Gmail et Outlook ne prennent pas en charge ~ ou :nth-child.

Il y a un bon guide de support CSS ici: https://www.campaignmonitor.com/css/

Bien que ce graphique ne dit pas - Je suis assez sûr que Gmail et Outlook aussi ne prennent pas en charge :checked.

enter image description here

enter image description here

Certains navigateurs vous permettra d'utiliser ces règles, mais à moins que vous ciblez délibérément un ensemble spécifique d'utilisateurs avec un certain client de messagerie, il n'y a pas moyen sûr de faire les bons choix pour tout le monde.

+0

Ha! Je cherchais ce lien ... Et vous posté. –

+0

@Albzi pouvez-vous s'il vous plaît dites-moi de faire ce wok ou y at-il des tutoriels que je peux suivre envoyer des e-mails interactifs pour n'importe quel client –

+0

@chalithageekiyanage Malheureusement, si vous regardez le graphique dans le lien, vous verrez que toutes les règles en CSS. Les e-mails ont toujours été une bataille et malheureusement, vous ne serez pas en mesure de créer un e-mail interactif qui fonctionne sur chaque client. – Albzi