mailto caractères spéciaux
Est-il un moyen de rendre le client de messagerie ( Outlook ) accepter les caractères spéciaux en provenance du lien mailto dans le html? Je suis d'essayer d'avoir un lien mailto avec l'allemand caractères dans le corps, mais dans Outlook je ne reçois que des caractères étranges.
Grâce
J'ai le même problème. Vous pouvez choisir un aswer ou publier vos propres?
OriginalL'auteur | 2009-06-12
Vous devez vous connecter pour publier un commentaire.
Je viens de passer 2 jours d'enquête sur cette question. Notre problème est que les liens mailto: sur notre codé en utf-8 pages web ne fonctionne pas pour les utilisateurs d'Outlook, si le sujet= chaîne de caractères contenue des caractères non-ascii, comme l'e.g norvégien caractères. Un exemple est:
"mailto:[email protected]?subject=julegløgg og fårikål"
De ce que j'ai appris jusqu'à présent, Outlook ne peut tout simplement pas gérer quoi que ce soit d'autres que l'ASCII et iso-8859-1 caractères. Donc, lorsque vous essayez de cliquer sur le lien mailto (soit à partir de IE ou Firefox), Outlook ne parvient pas à décoder les personnages, en laissant l'objet cassé et contenant "bizarre" des personnages.
Donc, la prochaine étape est d'essayer de ré-encoder les pages en ISO-8859-1. Ce que nous avons fait a été de remplacer l'original lien mailto sur l'utf-8 page avec un lien vers un "e-mail-à-iso"-service, comme ceci:
http://url.com/service.php?service=util.mailtoencode&mailto=mail%40coretrek.no%3Fsubject%3Demne+%C3%B8%C3%A6%C3%A5+emne
Cette page serait de convertir le mailto caractères iso-8859-1 et alors la sortie de l'ensemble du contenu de la page en iso-8859-1. Un javascript sur la page, qui contient des "emplacement.href='mailto:...'" a été utilisé pour ouvrir le client du client de courrier électronique automatiquement.
Jusqu'à présent, tout semblait ok. Cela fonctionne dans Internet Explorer, à la fois avec Thunderbird et Outlook (testé sur IE7 sur WinXP avec Outlook express et de la TUBERCULOSE 2).
MAIS le problème maintenant est en fait Firefox. Il semble que Firefox est incapable de décoder url-encodée url contenant des caractères trouvés seulement dans la norme ISO-8859-1, mais pas en ASCII (comme le norvégien å, représenté par %E5 lorsqu'ils sont encodés). La même å est gérée correcte si la page est encodé en utf-8, mais il semble que les développeurs de Firefox ont oublié de tester les caractères spéciaux en collaboration avec l'ISO-8859-1 jeu de caractères.
Le résultat est que Firefox passe un non-décodé chaîne (contenant encore de l' %E5 intstead de å) pour le client de messagerie. Et, étonnamment, il est fait corriger par Outlook (qui parvient à décoder la chaîne elle-même), mais PAS par Thunderbird, qui a sans doute le même bug que Firefox. Si vous N'avez pas les encoder, le sujet, la chaîne est passée correctement pour Thunderbird, mais pas dans Outlook.
Nous avons également essayé d'autres méthodes de codage, comme php htmlentities, htmlspecialchars, de l'encodage base64, etc, mais tous ne parvient pas, d'une manière ou l'autre.
Donc, en résumé:
Pages codées en utf-8:
IE ne toujours
FF -> Thunderbird: OK
FF -> Outlook: FAIL
Pages encodées en iso-8859-1:
C'EST À DIRE: OK
FF -> Thunderbird: Échoue si l'objet est encodée url, sinon ok)
FF -> Outlook: Échoue si le sujet n'est pas encodée url, ok si codées)
(c'est Windows, sur Linux Ubuntu FF et TB fonctionne toujours).
En espérant que cela a été utile pour d'autres personnes ayant le même problème.
OriginalL'auteur Arve Skjørestad
En PHP je pense que la fonction qui fonctionne le mieux avec Outlook est rawurlencode()
+1, a fait le travail pour moi.
Fonctionne comme un charme 🙂
OriginalL'auteur Mario Chueca
Je pense que l'utilisation d'un urlencode méthode devrait faire ce que vous cherchez. JavaScript est .encodeURI() méthodes sur des objets string, et .NET a la HttpUtility.UrlEncode méthode.
Quelle langue utilisez-vous?
OriginalL'auteur John Weldon
En fait, la solution est http://blogs.msdn.com/ie/archive/2007/02/12/International-Mailto-URIs-in-IE7.aspx et il n'est pas agréable.
Pour l'essentiel, dans IE 7 et 8, l'utilisateur doit avoir activé un paramètre avancé dans les Options Internet, de quelque chose que 100% des utilisateurs ne savez pas activé.
OriginalL'auteur yandr
Vous devez activer le support UTF-8 pour le mailto: protocole
À partir de la fenêtre principale d'outlook, cliquez sur Outils -> Options -> format de courrier -> options -> "Activer le support UTF-8 pour mailto: protocole".
Encore. C'est une solution de travail.
OriginalL'auteur Dean Rather
rawurlencode()
fonction qui fonctionne le mieux avec outlook,testé avec Firefox, google Chrome & IE
Fonctionne comme un charme, merci! 🙂
OriginalL'auteur Kiran Gohel
Comme yandr indiqué, ce problème est un problème permanent avec Outlook.
Microsoft a documentation publiée que les états correctement configuré Outlook 2003 et 2007 attaché à un correctement configuré Exchange server par défaut à la prise en charge Unicode, mais qui n'a pas vraiment vous aider avec le grand public.
Pour référence, la "norme" que vous souhaitez consulter pour ce qui est RFC 2047.
La solution que j'ai mis en œuvre pour contourner cette limitation (en suédois, en fait) est d'utiliser un formulaire web au lieu d'un mailto: lien. Il nécessite plus de l'installation sur le serveur, mais vous donne beaucoup plus de contrôle sur le processus de contact.
Je suis sûr que ce n'est pas ce que tu voulais entendre, mais jusqu'à ce que le monde s'arrête à l'aide brisé logiciel de Microsoft, nous allons continuer à avoir besoin de solutions de contournement comme ça.
OriginalL'auteur ghoti
Il sonne comme vous avez besoin de la page contenant le lien mailto pour être dans le codage que Outlook est attend. Sans connaître plus sur la situation, je vais essayer de codage de la page en UTF-8 et ISO-8859-1.
Pertinents "en savoir plus sur la situation" serait ce que des caractères bizarres apparaissent et que la page d'encodage est actuellement.
OriginalL'auteur chaos
Si l'on est à l'aide de SharePoint 2010, il semble que Microsoft est conscient de ce problème, et a fourni certaines fonctions de résoudre ce problème.
La suite d'échapper correctement le lien de la page actuelle
escapeProperly(escapeProperlyCoreCore($(emplacement).attr('href'), false, false, true))
OriginalL'auteur PelleLauritsen