I absolutely hate spam, whether it's email, junk snail mail, text messages, etc. When I got my new iPhone one of the first things I did was connect it to the exchange server at work. It was a beautiful thing, as with a few entries within minutes I was live via activesync just like my Outlook client on my PC. But then the spam started coming in. I was completely baffled when I looked on my iPhone and noticed 3 new messages. Wow, lots of email coming in. But when I looked they were your typical "enhancement" or "get your degree now" emails.
I spent a lot of time tweaking Outlook to be quite good at keeping spam out of my inbox. So I couldn't understand why the spam was zipping through to my iPhone. After doing some googling I learned that there is no spam filtering software on the iPhone. My next step was to go look at my Outlook/exchange settings and figure out what wasn't working. What I learned was that my main spam filtering rule was a client-only rule. So it only runs when the Outlook client is connected to exchange. Eureka! But why was it client only and how do I fix it?
After more googling I found a site that explained the problem. It seems I had a condition in my rule that forced it to be client only. We use Spam Assassin at work to filter messages. When it determines through its magic that a message is spam, it inserts a line into the email header that says "X-Spam-Flag: YES". My rule would look into the message header and if it found that string it would mark it as read, and permanently delete it. I believe the culprit was the mark it as read part. I took that out, and instead of permanently delete it I changed it to move it to the deleted items folder. Voila. When I saved that rule it didn't put the little (client-only) tag next to it.
The good news? I haven't had a spam email on my iPhone since. Rock-on iPhone.