The number of people who use "whom" and "who" wrongly is appalling. The problem is a difficult one and it is complicated by the importance of tone, or taste. Take the common expression, "Whom are you, anyways?" That is of course, strictly speaking, correct - and yet how formal, how stilted! The usage to be preferred in ordinary speech and writing is "Who are you, anyways?" "Whom" should be used in the nominative case only when a note of dignity or austerity is desired. For example, if a writer is dealing with a meeting of, say, the British Cabinet, it would be better to have the Premier greet a new arrival, such as an under-secretary, with a "Whom are you, anyways?" rather than a "Who are you, anyways?" - always granted that the Premier is sincerely unaware of the man's identity. To address a person one knows by a "Whom are you?" is a mark either of incredible lapse of memory or inexcusable arrogance. "How are you?" is a much kindlier salutation.
The Buried Whom, as it is called, forms a special problem. That is where the word occurs deep in a sentence. For a ready example, take the common expression: "He did not know whether he knew her or not because he had not heard whom the other had said she was until too late to see her." The simplest way out of this is to abandon the "whom" altogether and substitute "where" (a reading of the sentence that way will show how much better it is). Unfortunately, it is only in rare cases that "where" can be used in place of "whom." Nothing could be more flagrantly bad, for instance, than to say "Where are you?" in demanding a person's identity. The only conceivable answer is "Here I am," which would give no hint at all as to whom the person was. Thus the conversation, or piece of writing, would, from being built upon a false foundation, fall of its own weight.
A common rule for determining whether "who" or "whom" is right is to substitute "she" for "who," and "her" for "whom," and see which sounds the better. Take the sentence, "He met a woman who they said was an actress." Now if "who" is correct then "she" can be used in its place. Let us try it. "He met a woman she they said was an actress." That instantly rings false. It can't be right. Hence the proper usage is "whom."
In certain cases grammatical correctness must often be subordinated to a consideration of taste. For instance, suppose that the same person had met a man whom they said was a street cleaner. The word "whom" is too austere to use in connection with a lowly worker, like a street-cleaner, and its use in this form is known as False Administration or Pathetic Fallacy.
You might say: "There is, then, no hard and fast rule?" ("was then" would be better, since "then" refers to what is past). You might better say (or have said): "There was then (or is now) no hard and fast rule?" Only this, that it is better to use "whom" when in doubt, and even better to re-word the statement, and leave out all the relative pronouns, except ad, ante, con, in , inter, ob, post, prae, pro, sub, and super.
James Thurber:
Ladies' and Gentlemen's Guide to Modern English Usage