I'm trying to detect the devices that open my newsletter parsing the user-agent that request my 1x1 tracking image. The problem is that Gmail save all of the images in his storage and the user agent is always "Mozilla/5.0 (Windows NT 5.1; rv:11.0) Gecko Firefox/11.0 (via ggpht.com GoogleImageProxy)", this if the opener is from the gmail app and when is from the desktop interface.
Now the question is, there's a way to tell Google avoiding to save the image in the newsletter? Maybe there's a custom header in the mail?
Or maybe there are other solutions for detecting the tipology of the devices that open newsletter from gmail official interface?
Thanks to all.
Yuri
The only solution I'm aware of is the one provided by ContactMonkey, but it's a proprietary system so I'm not sure of how it works. They have a free plan so you can test out their software and see if it fits your needs.
Related
I use LWP::UserAgent to access the web site. The site offers almost the same info in auto-selected layouts for pc (default?) and mobile. Some informations are easier to get in non default layout.
Which User-Agent most generic strings are recommended to identify web client as mobile or pc device?
LWP::UserAgent : $ua->agent('…');
P.S. So far for tests I use full string of randomly selected mobile device. It works but I would like to set proper "style-guide" - set and forget for LONG. I would like to avoid requirement for fixes every few years.
In my specific case Mozilla/5.0 (Mobile) delivers wanted results.
IMHO it is worth to try in other cases.
$ua->agent('Mozilla/5.0 (Mobile)');
I have tried it based on suggestion in
https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/User-Agent
Firefox UA string
[…] The UA string of Firefox itself is broken down into four components:
Mozilla/5.0 (platform; rv:geckoversion) Gecko/geckotrail Firefox/firefoxversion
Mozilla/5.0 is the general token that says the browser is Mozilla compatible, and is common to almost every browser today.
platform describes the native platform the browser is running on (e.g. Windows, Mac, Linux or Android), and whether or not it's a mobile phone. Firefox OS phones simply say "Mobile"; the web is the platform.
[…]
Is there support for PNG alpha transparency for popular email clients?
Here are the list of major e-mail clients i'm planning to support:
Web based*
Gmail
Hotmail
Yahoo
Software based
Outlook 2007/2010
Windows Mail
Mac OSX Mail
Thunderbird
Mobile based
iOS Device Mail
Android Device Mail
*This is browser-based, so no need to worry about this
From the research i've done, it seems all (mobile-based isn't listed, but i checked my phones) support PNG (http://en.wikipedia.org/wiki/Comparison_of_email_clients#Messages_features). But, I'm unsure as to whether or not they support transparency. Anyone have any good insight into this?
I've figured it out. I think that most will support PNG. I think that outlook 2003 used to have that problem because it was using the IE rendering engine. Nowadays, PNG is fairly acceptable. BUT, be a little careful with alpha transparencies.
But anyway, litmus has been the best thing i've used thus far. So, I suggest to use that if you are very serious about testing on all available platforms
I am trying to allow people (from a URL) to connect to a calender/contacts from their iPhone, Blackbury or Android phone - what is the best way to do this?
I've had a bit of a read and it seems that CalDAV and CardDAV are the best way to integrate calenders/contacts, but how exactly can I do this? The internet seems to lack a standard way of how you can integrate this into a number of devices.
Which mobile devices support them? And is it possible to just provide a URL and then the calender/contacts just automatically sync!?
All of this assumes you have some sort of Groupware server setup somewhere which acts as the repository for this information.
For opensource you might want to look at a product called Sogo. Apple also do a caldav/carddav server written in python. They expect you to buy a mac server but you can download the code and run it from a pc or linux box. There's a heap of paid-for groupware.
You might want to check out the "opensource" client software written by the same kids who develop Sogo caled funambol. This claims to be x-mobile (all the ones youve mentioned anyway).
The idea behind all the *DAV protocols is that yes everything is done by Uri (this was actually specced by Tim Berners Lee in his draft for the web).
I've just been through this very same process and found only emerging standards, of which *DAV are the de facto ones IMO. HTC use MS active sync on my HD2 to sync my Gmail. Go figure!
Bedework is CalDAV/CardDAV server that allows you to hook your iPhone/iCal calendar and events.
I have used it and it gives you an url to sign in with in you phone calendar. The Bedework is a server you could install on you machine (it is provided with documentation; this is a good point to start with).
Android natively does not support Bedework. In order for Android to support the CalDAV you have to install an application that supports CalDAV, but I do not know if they work with Bedewrok or not.
In the case of android you could try using the CalendarProvider and the ContactProvider. You could refer to this : http://developer.android.com/guide/topics/providers/calendar-provider.html
Is it possible to restrict access to a server so that only iPhone devices can use it? I have no experience in setting up servers or the like before. I am still very fresh to programming. Thanks.
Is this a web server you're talking about? If so, then normal web requests have a User-Agent string in the HTTP header. You can check this value to see if the request is coming from an iPhone. If it's not coming from an iphone, you can reject the request, or redirect the user to a page explaining that your website is only for iphones.
If you are developing the server and iphone software, you could use some form of simple encryption. A model like SSL may be too heavyweight, but it may be an option.
Background
There are a lot of App Store released iPhone apps that require an IP based server on the desktop so that the iPhone can connect to the desktop as a client. For example, there are many programs that emulate a keyboard, touchpad, or Apple remote on the iPhone so that a desktop computer can be controlled over wifi. However, many of these applications get around writing their own server by requiring the user to install some VNC server variant.
Question
What is the best way to implement a secure (encrypted) IP server on a desktop (Mac and Windows platforms) that allows for simple two way message passing between itself and an iPhone client on a wifi network?
Sample Use Case
An event on the desktop causes the desktop to push a small image or text to the iPhone. An event on the iPhone causes a short text message to be pushed to the desktop. Any single event can happen at any time (doesn't appear synchronized to the user).
1st Follow-Up Question
Would this type of project be best handled using something like XML or JSON over HTTP? Or is there a better protocol, like BEEP or Bonjour(XMPP)?
What is the best way to implement a secure (encrypted) IP server on a desktop (Mac and Windows platforms) that allows for simple two way message passing between itself and an iPhone client on a wifi network?
Not sure if there is a "best" way, but much code is already available to do xyz-over-HTTPS (TLS/SSL). In that case, the "xyz" can be any web-based message exchange protocol, such as XML, JSON, etc. via REST or SOAP, etc.
If you want to be able to push events to a non-jailbroken iPhone you can't do it other than via Apple's Push Server which causes a notification to the client program if it is running or otherwise displays an alert of some kind to the user.
Typical architecture has those notifications handled by the client program as an indication it should go and get some data from the server - Apple insist we do not regard the notifications as trusted delivery.
I suggest a read of this article on using Bonjour and local networking, whilst it's iPhone to iPhone it should apply to desktop OS/X also.