Set a custom css signature on your iPhone (updated 4x)
Last week I spent a stupid amount of time figuring out how to set a custom css signature on my iPhone after being ridiculed by a friend for my semi-default “Sent from my iPhone.” tagline. In the spirit of sharing, I’ve written it up to spread the word.
First, you must have access to the filesystem on your phone. If you’re on a Mac, I recommend Installer.app Beta. It couldn’t be easier. If you’re on Windows, check out Gizmodo’s guide.
Once installed, launch it on the iPhone and install two packages: BSD Subsystem and OpenSSH. Get your iPhone’s IP address from Settings: Wi-Fi: Your Network: & Tap the arrow.
Now you can SSH into the phone.
ssh root@youripaddress
The password is “dottie”. Once logged in, change your password using “passwd”.
Now, you can use SFTP with a FTP client like Transmit. Or even use a FUSE filesystem like MacFUSE> with sshfs to mount it on your desktop.
At any rate, once you’ve decided how to access the filesystem, you need to copy this file to your Mac:
Firmware 1.0 - 1.1.3
/private/var/root/Library/Preferences/com.apple.mobilemail.plist
Firmware 1.1.4
/private/var/mobile/Library/Preferences/com.apple.mobilemail.plist
On my machine, I just hit command-J in Transmit and it opens in Apple’s Property List Editor (PLE). This application is installed as part of Apple’s Developer Tools package. The package comes with every Mac, but is not installed by default. If you don’t have it, you can grab it from Apple’s developer site.
The reason I recommend PLE is that the plist file is a binary and not plaintext. Erica Sadun has written an iPhone commandline tool called plist2text. This is included in her EricaUtilies package in availble in Installer.app. plist2text is supposed to be able to dump the binary file to a txt directly on the phone avoiding the need for PLE, but in my testing it corrupted the binary.
Once com.apple.mobilemail.plist opens in PLE, click the Root disclosure triangle and observe the SignatureKey value. If this value is not present, go into iPhone’s Settings: Mail: Signature and change it to anything other than the default. This should create the key value.
Now onto the design-
For the actual design, you will use html. Being a CSS convert, I recommend using some tasteful, lightweight css code. The signature itself is just html with CSS defined inline. I created a valid xhtml page and used the body portion for mine. Just take out the html, head and body tag sets.
Mine is simple, clean and designed for the small screen:
Here’s the code:
<div style="font: 10px 'Lucida Grande',Verdana, Arial, Sans-Serif;
line-height: 18px;
color: #525252;
margin: 6px 0;
padding: 6px;
border-top: 1px #999999 solid;
border-bottom: 1px #999999 solid;
background: #fff">
<div style="padding: 2px 0 2px 70px; background: url('http://dfbills.com/images/signature/iphone.jpg">
<strong>David F. Bills</strong>
<br />
<a href="http://dfbills.com">http://dfbills.com</a>
<br />
sent from my mobile
</div>
</div>
Since it has become commonplace for email clients to deny http downloads in the body of emails, I’ve decided to go ahead and encode my jpeg image directly into base64 using DataURLMaker.
Replacing the image reference with the base64 code and compacting the linebreaks gives me:
<div style="font: 10px 'Lucida Grande', Verdana, Arial, Sans-Serif; line-height: 18px; color: #525252 ; margin: 6px 0; padding: 6px; border-top: 1px #999999 solid; border-bottom: 1px #999999 solid; background: #fff"><div style="padding: 2px 0 2px 70px; background: url('data:image/jpeg;base64,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') no-repeat 0 1px ;"><strong>David F. Bills</strong><br/><a href="http://dfbills.com">http://dfbills.com</a><br/>sent from my mobile</div></div>
Now, my signature is complete, self-contained and ready to load into MobileMail.
Switch over the PLE and paste the your code into the SignatureKey string field, save and bring up a new mail message on the iPhone. You should now be able to see the results of your handiwork.
Update: A few people have asked for the iPhone photo frame file used in my sig. I’ve posted the PSD for download.

Can you send me that icon template so I can put my picture in there?