The real facts:
Previously, DH did what most networks would do. If the connection to the SMTP server is coming from a known local host, it didn’t require you to auth. This is done by keeping a list of known local IP addresses. Pretty simple stuff.
Now they do require you to auth from a known local server. Without telling anyone in advance.
Now, even if you want to argue that this is a usefull security measure (which it isn’t since if you are on the machine already (which is what was required previously), you can now simply look at someone’s CGI script to get a valid AUTH credential and can now not only send mail, but read that mailbox as well), perhaps mentioning that they are going to change how they do things ahead of time would have been nice? Maybe if you were more knowledgable on the subject you’d understand that it’s not a usefull security measure, and that it breaks a lot of things.
Dreamhost status talks about remote email clients, which have always required you to AUTH (as far as I remember, maybe they didn’t? I always have). They also seem to think (according to Dreamhoststatus) that a “Relaying denied” error is caused by your ISP blocking port 25. This is a mystery to me. You couldn’t get that error if port 25 was blocked because you couldn’t get to the SMTP server in the first place. Really understanding the problem, they are not.
It doesn’t talk about CGI scripts, which didn’t need to AUTH until now, and will now fail if they don’t. This includes the miriad of scripts you get off various internet sites (such as a lot of Forums). Want to know why? Because usually you don’t need to auth from a known local server. They hint at it with the pine config, but that’s about it.
Of course, they posted it to dreamhoststatus 2 days after they made the change. I know this because I figured it out when mail stoped working from various scripts we use two days ago.
As per usual you defend by trying to pick at something that isn’t related. Yes genius, I realize that a CGI script that doesn’t use SMTP won’t fail. Of course, this person is trying to use SMTP, and the reason it isn’t working is because DH just changed how things work and he needs to figure out how to AUTH in php.
For the original poster - I don’t use PHP, so I can’t tell you exactly how to modify your code. I’d google for “PHP smtp auth” and try and find how to add sending an AUTH to your code. The easiest way is using a AUTH PLAIN. You just need to base64 encode your username and password for sending it that way. You could also use an encrypted version, but it gets a little more complicated.