what do you exactly mean by reject? Are these goods you just get which are older than expected and you reject its receipt?
Or is it material that got old in your own warehouse because it was not consumed?
You either have to manually monitor the expiration dates e.g. in MB5M and then move the batches to restricted use or blocked stock.
Or when using QM module, then you can have an inspection type for recurring inspection (09) , and by running transaction QA07 SAP can check the shelf life expiration date and change the stock status.
Alternatively a batch determination is able to ignore batches that are expired from being picked for deliveries.