Big thanks to everyone who contributed to this thread, especially blainetransue and Karabuni for your clear and well-written instructions! My (extremely important to me) mail rules vanished when I switched from a 2009 Unibody Macbook with Snow Leopard to a late 2012 MPB with Mountain Lion earlier this month. Apple told me that the only recourse was to recreate my rules from scratch, and when I pointed them to this discussion thread, they refused to talk to me about it. But thanks to you all, I was able to overcome my near-total ignorance of programming to reconstruct my rules, and they are working like a charm!
I used blainetransue's copy and paste method and incorporated Karabuni's edits into it. I also included a line about "send notification" that someone else suggested. I did also fix the indentation, as the rules I copied from MessageRules.plist were tabbed differently from the rules that already existed in SyncedRules.plist. Someone here mentioned that the tabs do nothing but help make it more comprehensible to humans, but it helped me, so I went ahead and did it, even though it took some time. I also did one rule at a time, copying it from MessageRules.plist, pasting it into UnsyncedRules.plist, then making my edits. After every rule, I saved the plist and launched Mail to see that the rule had appeared, and it did! All I had to do was click to make it active, and my inbox was back in business! (And when I went back to UnsyncedRules, the code I had just copied had moved to SyncedRules.) Overall, it took me a while to do this, but I feel confident about the results.
I'd like to add a little clarification, for any other non-programmers (like me) who may encounter this thread. When I first read blainetransue's explanation and looked at the plist files, I was a little unclear about what exactly constituted one complete, user-defined rule, especially since there were <dict>s and <array>s all over the place, and I wasn't sure where to start and end my copying. I'm sure this was all obvious to everyone else here, but it took me a while to sort it out. Since I've figured it out, I'm going to post one complete rule as it ultimately appeared in my SyncedRules.plist and mark the edits I made. Red marks the edited items, and blue marks some explanatory notes that don't appear in your code. The table appeared when I pasted it here, you won't see it in text editor. Hope this helps someone in the future!
Put your cursor before this <dict> to start copying
| <dict> | This part is the "introduction" of your rule |
| There may be a few lines above AllCriteriaMustBeSatisfied - delete them |
| <key>AllCriteriaMustBeSatisfied</key> |
| <string>NO</string> |
| <key>AutoResponseType</key> |
| <integer>0</integer> |
| <key>Color</key> |
| <integer>9158119</integer> |
| <key>Criteria</key> |
| <array> | These are the individual criteria of your rule |
| <dict> |
| <key>CriterionUniqueId</key> |
| <string>87fecbae-7e2f-49f3-804f-27306d5d3746</string> |
| <key>Expression</key> |
| <string>@enews.apple.com</string> |
| <key>Header</key> |
| <string>From</string> |
| </dict> |
| <dict> |
| <key>CriterionUniqueId</key> |
| <string>79488e19-a69c-4be8-b5ca-3854ce992ba3</string> |
| <key>Expression</key> |
| <string>@apple-asia.com</string> |
| <key>Header</key> |
| <string>From</string> |
| </dict> |
| </array> |
| This part is the "conclusion" of your rule |
| <key>Deletes</key> |
| <string>NO</string> |
| <key>HighlightTextUsingColor</key> |
| <string>NO</string> |
| <key>MarkFlagged</key> |
| <string>NO</string> |
| <key>MarkRead</key> |
| <string>NO</string> |
| <key>NotifyUser</key> |
| <string>NO</string> |
| <key>RuleId</key> |
| <string>9C9E414F-ED65-4B13-AEF2-FFC5B92FC8FC</string> |
| <key>RuleName</key> |
| <string>News From Apple</string> |
| <key>SendNotification</key> - add these two lines here |
| <string>NO</string> |
| <key>ShouldCopyMessage</key> |
| <string>NO</string> |
| <key>ShouldTransferMessage</key> |
| <string>NO</string> |
| <key>StopEvaluatingRules</key> |
| <string>YES</string> |
| <key>TimeStamp</key> |
| <integer>254102125</integer> - switch "string" to "integer" |
| <key>Version</key> - add these two lines here |
| <integer>1</integer> |
| </dict> | Put your cursor here to end your selection. |
The end of the UnsyncedRules.plist file, that you are pasting into, looks like this:
Place your cursor here, when you paste.
</array>
</plist>
I know one of you created a program to automate this editing process, but that was a bit beyond me, so I just did it the slow, manual way.
Many many thanks again to everyone who contributed! I've really learned a lot in the last three days and I couldn't have done it without you. And my rules are back - hooray!!!