I have some simple php code. It worked fine on the old server, but now I am getting an error on the new server. Both former and present servers are Linux.

<?php 
        function ConfirmationEmail ()
        {
          $from = "mo@abc.com";
          $recipient = "bill@yahoo.com";
          $cc1 = $from;
          $cc2 = "mo@gmail.com";
          $subject = "Trial e-mail!";
          $message = "This is a test!\n";
          $headers = "From: " . $from . "\r\n" . "Cc: " . $cc1 . " " . $cc2;
													 
          $success = mail($recipient,$subject,$message,$headers);
			
          if ($success)
            echo "<br>A confirmation e-mail was just sent to you.<br>";
          else
          {
            echo "An attempt was made to send you an e-mail, ";
            echo "but it was unsuccessful. <br>";
          }
        }
    ?>

Here is my error message that I get from the mail server in an e-mail. Subject line is

"Inbox: Mail failure - malformed recipient address"

A message that you sent contained one or more recipient addresses that were
incorrectly constructed:

mo@abc.com mo@gmail.com: malformed address: mo@gmail.com may not follow mo@abc.com

This address has been ignored. The other addresses in the message were
syntactically valid and have been passed on for an attempt at delivery.

The e-mail addresses have been changed. The second address of the cc line is getting tossed out (mo@gmail.com). I'm not sure why. The recipient and the first cc address are being sent correctly. It worked on the last server. Any ideas? Thanks.

i made an email class. try it and make sure that you have the headers formed correctly.

http://www.daniweb.com/forums/thread155761.html - Post
#12

then we will see if something is wrong the the server config.

Hey, thanks! I think I can make use of this. On my first try, it only did the first cc address but not the second, same as with mine, but I'll play around with it. It did send the e-mail to the first cc address. I could be using it wrong. I'll try it more carefully and get back to you. It could come in handy with the ability to send attachments, html, etc. I haven't tried those out yet.

As far as my problem goes, I did an experiment and if I change line 10 from:

$headers = "From: " . $from . "\r\n" . "Cc: " . $cc1 . " " . $cc2;

to

$headers = "From: " . $from . "\r\n" . "Cc: " . $cc1 . ", " . $cc2;

Note the added comma above. It seems to work better. Are you supposed to separate the addresses with a comma? I'll get back to you regarding your e-mail class. That could have great potential. Thank you!

Hi,

This may be way off the mark, but have you tried adding a comma between $cc1 and $cc2??

Hence,

$headers = "From: " . $from . "\r\n" . "Cc: " . $cc1 . ", " . $cc2;

That may be why the gmail address is not allowed to follow the abc address.

Best,

Rob.

Hi,

This may be way off the mark, but have you tried adding a comma between $cc1 and $cc2??

Hence,

$headers = "From: " . $from . "\r\n" . "Cc: " . $cc1 . ", " . $cc2;

That may be why the gmail address is not allowed to follow the abc address.

Best,

Rob.

Yes, that was the problem. Thanks to both of you.

No problem, and one last thing to tidy the line of code up...

$headers = "From: $from\r\nCc: $cc1, $cc2";

You don't need to concatenate if the variables are enclosed within double quotes, although being a postaholic, I expect you know this :)

A matter of personal preference I suppose.

R.

Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.