{"id":983,"date":"2013-11-11T18:10:01","date_gmt":"2013-11-11T17:10:01","guid":{"rendered":"http:\/\/blog.kolatzek.org\/wblog\/?p=983"},"modified":"2013-11-11T18:50:19","modified_gmt":"2013-11-11T17:50:19","slug":"firefox-mailto","status":"publish","type":"post","link":"https:\/\/blog.kolatzek.org\/wblog\/983\/firefox-mailto","title":{"rendered":"Firefox &amp; mailto:"},"content":{"rendered":"<p>Es wird wieder mal Zeit f\u00fcr einen Kurzbeitrag \u00fcber die Technik. Mit Dank an alle Leidensgenossen, die mit ihren Blogs und Forenbeitr\u00e4gen mir das Leben erleichtern, m\u00f6chte ich das Thema Mozilla Firefox und die Behandlung von mailto:-Links schildern.<\/p>\n<p><!--more--><\/p>\n<p>Die Links in Form von &lt;a href=&#8220;mailto:abc@cde&#8220;&gt;Email&lt;\/a&gt;, die von Spammern sehr geliebt werden und deshalb nach und nach ungesch\u00fctzt im freien Web immer seltener zum Einsatz kommen, sind \u00fcbliche HTML Links die das Protokoll &#8222;mailto&#8220; nutzen. (<em>Im HTML5 kennen wir weitere Protokolle wie &#8222;geo&#8220; f\u00fcr Geokoordinaten oder &#8222;tel&#8220; f\u00fcr Telefonnummern.<\/em>) Die Pflicht zum Handling dieser Protokolle kommt zun\u00e4chst dem Browser selbst zu. Wenn dort keine Regeln hinterlegt worden sind, wird auf die Voreinstellungen des Betriebssystems zur\u00fcckgegriffen.<\/p>\n<p>Firefox konnte man eine Zeit lang \u00fcber prefs.js steuern. Seit der Version 10\/11 (wenn nicht richtig liege) ist das aber nicht mehr so einfach. Jetzt ist <strong>mimeTypes.rdf<\/strong> die Wissensbasis f\u00fcr den Firefox, was die <a title=\"Definition von MIME\" href=\"http:\/\/de.wikipedia.org\/wiki\/Multipurpose_Internet_Mail_Extensions\"><strong>MIME-Typen<\/strong><\/a> und Protokolle anbetrifft. Es ist eine <a title=\"Definition von RDF\" href=\"http:\/\/de.wikipedia.org\/wiki\/Resource_Description_Framework\">RDF-Datei<\/a> &#8211; also eine XML-Anwendung, die <strong>wohlgeformt und g\u00fcltig<\/strong> sein muss. Deshalb ist es nicht mehr so &#8222;einfach&#8220;. Mit alten <a title=\"...der Stream EDitor\" href=\"http:\/\/de.wikipedia.org\/wiki\/Sed_%28Unix%29\" target=\"_blank\">sed<\/a>-Kommandozeile-Skripten spielt man beim XML ein gef\u00e4hrliches Spiel. Man \u00fcberl\u00e4sst besser die Handhabung von solchen Dateien geeigneten XML-Werkzeugen. &#8230;oder dem Browser selbst.<\/p>\n<p>Firefox kennt auch einen Befehl im JavaScript, der eine Protokoll &#8211; mit Zustimmung des Benutzers &#8211; in eben dieser MIME-Type-Datei registriert. Der Aufruf wird dem Benutzer in Form einer grauen Leiste \u00fcber der Webseite sichtbar gemacht. Der Benutzer kann es weg-X-en oder seine Entscheidung dem Browser kundtun. Der Aufruf wird aus der Webseite heraus gestartet. Diese kann wie folgt aussehen:<\/p>\n<pre class=\"prettyprint language-html html\"><code class=\"language-html html\">\r\n&amp;lt;html&amp;gt;\r\n&amp;lt;head&amp;gt;\r\n&amp;lt;\/head&amp;gt;\r\n&amp;lt;body&amp;gt;\r\n&amp;lt;button onclick='navigator.registerProtocolHandler(\"mailto\", \"https:\/\/zimbra.server.de\/?view=compose&amp;amp;to=%s\",\"Zimbra\");'&amp;gt;Zimbra registrieren&amp;lt;\/button&amp;gt;\r\n&amp;lt;\/body&amp;gt;\r\n&amp;lt;\/html&amp;gt;\r\n<\/code><\/pre>\n<p>Stimmt die URL der Seite nicht mit dem Ziel (in unserem Fall &#8222;https:\/\/zimbra.server.de\/&#8220;) \u00fcberein, wird es nicht ausgef\u00fchrt&#8230; Es sei denn, man hat in <strong>prefs.js<\/strong><br \/>\nim Profilpfad des Benutzers &#8222;<strong>gecko.handlerService.allowRegisterFromDifferentHost<\/strong>&#8220; auf &#8222;<strong>true<\/strong>&#8220; gesetzt. Dann geht es auch von anderen Servern aus.<\/p>\n<p>Die <strong>Parameter<\/strong> sind:<\/p>\n<ul>\n<li>Der Link-Typ &#8211; bei uns &#8222;<em>mailto<\/em>&#8222;<\/li>\n<li>Die zu verwendende URL &#8211; in unserem Fall &#8222;<em>https:\/\/zimbra.server.de\/?view=compose&amp;to=%s<\/em>&#8222;. Das &#8222;<strong>%s<\/strong>&#8220; ist der Ort, an dem die Empf\u00e4ngeradresse eingebunden wird.<\/li>\n<li>Der Name f\u00fcr diesen Eintrag &#8211; bei uns &#8222;<em>Zimbra<\/em>&#8222;<\/li>\n<\/ul>\n<p>Das Eintragen hat keine Auswirkung auf die Voreinstellungen des Nutzers. Dieser kann\/darf\/muss die Anwendung\/Webseite f\u00fcr die mailto-Links selbst bestimmen. Das geht \u00fcber &#8222;Firefox-Einstellungen&#8220;-Fenster darin der Reiter &#8222;Anwendungen&#8220;. Hier sucht man visuell oder per Filter den Dateityp &#8222;mailto&#8220; und kann dann aus der Liste rechts des Eintrags einen passenden Handler aussuchen. In unserem Fall w\u00e4re das &#8222;Zimbra&#8220;.<\/p>\n<p>Gl\u00fccklicherweise gilt diese API auch f\u00fcr <strong>Chrome<\/strong> ab Version 13! Die Details findet man unter:<br \/>\n<a title=\"Beschreibung von navigator.registerProtocolHandler - Ich liebe Mozilla. Tolle Doku und kostenlos oben drau!\" href=\"https:\/\/developer.mozilla.org\/en-US\/docs\/Web\/API\/navigator.registerProtocolHandler\" target=\"_blank\">https:\/\/developer.mozilla.org\/en-US\/docs\/Web\/API\/navigator.registerProtocolHandler<\/a><\/p>\n<p>Das &#8222;<code>navigator.registerProtocolHandler<\/code>&#8220; muss ja nicht an einen Klick gebunden sein. <strong>onload<\/strong> ist auch m\u00f6glich, wenn auch dem Benutzer gegen\u00fcber nicht so freundlich.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Es wird wieder mal Zeit f\u00fcr einen Kurzbeitrag \u00fcber die Technik. Mit Dank an alle Leidensgenossen, die mit ihren Blogs und Forenbeitr\u00e4gen mir das Leben erleichtern, m\u00f6chte ich das Thema Mozilla Firefox und die Behandlung von mailto:-Links schildern.<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_sitemap_exclude":false,"_sitemap_priority":"","_sitemap_frequency":"","ocean_post_layout":"","ocean_both_sidebars_style":"","ocean_both_sidebars_content_width":0,"ocean_both_sidebars_sidebars_width":0,"ocean_sidebar":"","ocean_second_sidebar":"","ocean_disable_margins":"enable","ocean_add_body_class":"","ocean_shortcode_before_top_bar":"","ocean_shortcode_after_top_bar":"","ocean_shortcode_before_header":"","ocean_shortcode_after_header":"","ocean_has_shortcode":"","ocean_shortcode_after_title":"","ocean_shortcode_before_footer_widgets":"","ocean_shortcode_after_footer_widgets":"","ocean_shortcode_before_footer_bottom":"","ocean_shortcode_after_footer_bottom":"","ocean_display_top_bar":"default","ocean_display_header":"default","ocean_header_style":"","ocean_center_header_left_menu":"","ocean_custom_header_template":"","ocean_custom_logo":0,"ocean_custom_retina_logo":0,"ocean_custom_logo_max_width":0,"ocean_custom_logo_tablet_max_width":0,"ocean_custom_logo_mobile_max_width":0,"ocean_custom_logo_max_height":0,"ocean_custom_logo_tablet_max_height":0,"ocean_custom_logo_mobile_max_height":0,"ocean_header_custom_menu":"","ocean_menu_typo_font_family":"","ocean_menu_typo_font_subset":"","ocean_menu_typo_font_size":0,"ocean_menu_typo_font_size_tablet":0,"ocean_menu_typo_font_size_mobile":0,"ocean_menu_typo_font_size_unit":"px","ocean_menu_typo_font_weight":"","ocean_menu_typo_font_weight_tablet":"","ocean_menu_typo_font_weight_mobile":"","ocean_menu_typo_transform":"","ocean_menu_typo_transform_tablet":"","ocean_menu_typo_transform_mobile":"","ocean_menu_typo_line_height":0,"ocean_menu_typo_line_height_tablet":0,"ocean_menu_typo_line_height_mobile":0,"ocean_menu_typo_line_height_unit":"","ocean_menu_typo_spacing":0,"ocean_menu_typo_spacing_tablet":0,"ocean_menu_typo_spacing_mobile":0,"ocean_menu_typo_spacing_unit":"","ocean_menu_link_color":"","ocean_menu_link_color_hover":"","ocean_menu_link_color_active":"","ocean_menu_link_background":"","ocean_menu_link_hover_background":"","ocean_menu_link_active_background":"","ocean_menu_social_links_bg":"","ocean_menu_social_hover_links_bg":"","ocean_menu_social_links_color":"","ocean_menu_social_hover_links_color":"","ocean_disable_title":"default","ocean_disable_heading":"default","ocean_post_title":"","ocean_post_subheading":"","ocean_post_title_style":"","ocean_post_title_background_color":"","ocean_post_title_background":0,"ocean_post_title_bg_image_position":"","ocean_post_title_bg_image_attachment":"","ocean_post_title_bg_image_repeat":"","ocean_post_title_bg_image_size":"","ocean_post_title_height":0,"ocean_post_title_bg_overlay":0.5,"ocean_post_title_bg_overlay_color":"","ocean_disable_breadcrumbs":"default","ocean_breadcrumbs_color":"","ocean_breadcrumbs_separator_color":"","ocean_breadcrumbs_links_color":"","ocean_breadcrumbs_links_hover_color":"","ocean_display_footer_widgets":"default","ocean_display_footer_bottom":"default","ocean_custom_footer_template":"","ocean_post_oembed":"","ocean_post_self_hosted_media":"","ocean_post_video_embed":"","ocean_link_format":"","ocean_link_format_target":"self","ocean_quote_format":"","ocean_quote_format_link":"post","ocean_gallery_link_images":"on","ocean_gallery_id":[],"footnotes":""},"categories":[8],"tags":[34,39,48,139],"class_list":["post-983","post","type-post","status-publish","format-standard","hentry","category-software","tag-email","tag-firefox","tag-html","tag-mail","entry"],"_links":{"self":[{"href":"https:\/\/blog.kolatzek.org\/wblog\/wp-json\/wp\/v2\/posts\/983","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.kolatzek.org\/wblog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.kolatzek.org\/wblog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.kolatzek.org\/wblog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.kolatzek.org\/wblog\/wp-json\/wp\/v2\/comments?post=983"}],"version-history":[{"count":8,"href":"https:\/\/blog.kolatzek.org\/wblog\/wp-json\/wp\/v2\/posts\/983\/revisions"}],"predecessor-version":[{"id":993,"href":"https:\/\/blog.kolatzek.org\/wblog\/wp-json\/wp\/v2\/posts\/983\/revisions\/993"}],"wp:attachment":[{"href":"https:\/\/blog.kolatzek.org\/wblog\/wp-json\/wp\/v2\/media?parent=983"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.kolatzek.org\/wblog\/wp-json\/wp\/v2\/categories?post=983"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.kolatzek.org\/wblog\/wp-json\/wp\/v2\/tags?post=983"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}