此问题类似于" Standard way to detect mobile browsers in a web application based on the http request"邮件客户除外。例如,如果在内置iPhone邮件客户端上打开电子邮件消息,它将显示专门为iPhone设置的消息版本。如果在平板电脑或桌面上打开,它将显示为电子邮件的完整版本。这在原则上类似于具有移动友好版本的网站的网站,该网站通过检测用户代理自动加载 - 但对于电子邮件客户端。
那么 - 是否可以检测用于打开电子邮件的邮件客户端并相应地格式化邮件?也许是一种检测屏幕分辨率的方法?
答案 0 :(得分:17)
您可以尝试应用针对移动设备等特定浏览器的 @media css查询。关于campaignmonitor help website有一个很好的介绍,但要注意,它可能只在一个充满浏览器和设备的手中得到支持,iOS很幸运地在它们上面:)
基本上,您定义的是针对特定屏幕宽度的css样式,以便您可以针对有限的屏幕空间优化电子邮件。
@media only screen and (max-device-width: 480px) { ... }
当谈论真正检测并显示完全不同的电子邮件时,这真的是不可能的,因为你在那里谈论javascript而且在电子邮件中没有完成,甚至可能在99%的所有电子邮件客户端都无法工作。但是你可以用@media查询来实现这种方式。
答案 1 :(得分:2)
我认为最好的解决方案是使用响应式网页设计技术。所以我的建议是流畅的电子邮件布局,可以根据手机屏幕的大小进行调整。
以下是一个示例:http://stylecampaign.com/blog/?p=85
注意:为电子邮件编写标记与浏览器完全不同。以下是一些值得关注的指南:
http://articles.sitepoint.com/article/code-html-email-newsletters/
http://www.mailchimp.com/resources/guides/email-marketing-field-guide/
答案 2 :(得分:1)
如果您想要专门针对移动浏览器的CSS,可以尝试以下代码。
<link rel="stylesheet" type="text/css" href="desktop.css" media="screen" />
<link rel="stylesheet" type="text/css" href="handheld.css" media="handheld" />
HEAD标记经常被电子邮件客户端删除,因此首选内联样式。但是如果你链接到BODY标签内的CSS它应该可以工作。
答案 3 :(得分:0)
当您说“邮件客户端”时,您的意思是使用ActiveSync,IMAP或POP访问的真实电子邮件客户端吗?然后你需要知道每个协议上是否有任何可以从HTTP模拟User-Agent的信息,遗憾的是IMAP或POP3 AFAIK上没有。通过Active-Sync,作为HTTP,您拥有User-Agent并可以调整响应,例如,首先设备要求提供文本版本(例如列表视图上的预览行),然后请求整个哑剧版(可能是html)。此时,服务器可以调整电子邮件mime并返回优化版本(例如调整标记,转换或调整附件等)