I always receive a gift from a trainer every day but every time I want to send a gift back to that trainer the message, “Your friend still has an unopened gift from you” always appears.
If I’m not mistaken, we can’t send a gift to a trainer without opening the gift that trainer has sent to us.
So, how can this trainer send a gift every day without opening my gift first?
Actually, you are mistaken.
When a friend sends you a gift, opening it is completely optional. If you tap the X button on the bottom of the screen, it will hide the gift and allow you to send a gift to that friend. I have many friends who haven’t opened my gift in weeks, but still send me some occasional.
I personally will do this as well when there is an upcoming event revolving around 7km eggs, such as the shiny regional Pokemon. I’ll not open any gifts (but still send some) until after the event starts, so I will get eggs with the updated pool.
As John Montgomery also points, you are limited to opening 20 gifts per day. If a trainer has a lot of friends, they can reach this limit on a daily basis and are unable to open your gift. Since you can send as many gifts as friends per day, being locked into opening a gift would prevent you from sending any more gifts to friends who sent you a gift once you reach that limit.