Yes, I may end up writing an article on that too.
Anyway, you can set the Return-Path header to an address where you want the bounced messages to go. Then you can use a POP3 class to retrieve and parse the bounced messages. There is an article about that here.
SMTP servers do not send messages, they just receive messages. If you want to know if a mailed message sent to a SMTP server was resent to the final address by the mail server, it depends on the mail server, but AFAIK there is no standard solution that would work for all mail servers.
By default the SMTP class just queues the message in the local server. If you want the class to deliver the message to the destination mail server, you need to use the direct_delivery mode.
That will make the class communicate with the destination SMTP server directly, instead of relaying to the local mail server.
I just do not recommend that you use that because messages may take a long time to be accepted and you need to deal with temporary rejections.
Better relay it to the local mail server unless it is really important for your application when the destination mail server accepted the message.