If I send ether to a smart contract, how can I see in geth, that it was rejected? I want to see which of my transfers were accepted by an ICO and which were not. I don't see any such field in getTransaction.
It depends on the contract itself, there is no general answer to this. If you care about a specific contract, you need to look at it's code and find circumstances where it logs an event or alters it's own storage, and then poke around it's storage or scan transaction receipts for events. If you can find a storage location that isn't altered by it's creation and isn't 0, or find a relevant event, then you know the contract has been used at least once.