When I send mail programmatically, I use a module to mediate the interaction with the MTA instead of trying to format all the headers and command-line parameters and so on correctly, so I don't know the full sendmail
interface off the top of my head. But...
open (MAIL, "|$sendmail $recipient")
...I strongly suspect that's your problem right there. You already told your sendmail
to send the message to $recipient
, so it's taking your word for it that that's where the mail should go, and not scanning the content of the mail for addresses. It's not even looking at the To:
header, much less Cc:
, because it already knows who the recipient is. If you just pipe the mail to sendmail without
providing an address (or any other parameters) on the command line, I bet your cc will work as intended.
Or, you know, find an email sending module on CPAN. There are... a few of them... to choose from, and they'll save you from tripping over little details like this and then having to figure out what you did wrong.