使用HTML Mime Mail for PHP发送电子邮件,但需要通过Exchange服务器进行身份验证
First off, the server: Exchange 2003 sp2 running on Windows 2003 Server sp2
I have a script that sends email to two email accounts, one called students@ and the other being fs@ (faculty/staff). We are setting both those email accounts to only accept incoming email by authenticated users on the exchange server, to spare ourselves from spam/junk mail. So right now the emails being sent by the script are not successful. I have the return-path email as a legit user, but it is not authenticated. I noticed that when I tried sending a test via my mail client (Apple's Mail.app) and since I use email through their IMAP server and not through exchange, my email failed as well.
Here is the code for sending the email:
$mail = new htmlMimeMail();
$message = $today.$announcements.$food.$upcoming;
$mail->setHTML($message);
$mail->setSubject($subject);
$mail->setSMTPParams('mail.domain.com', 25, true, 'user', 'pass');
$mail->setFrom("no-reply@domain.com");
$mail->setReturnPath("webmaster@domain.com");
if($message)
$mailresult = $mail->send(array($emailto));
I have never authenticated with an exchange server using the HTML Mime Mail for PHP (http://www.phpguru.org/static/mime.mail.html) class before. Any help would be appreciated.
Maybe there is another PHP class that easily allows authentication with an Exchange server?
EDIT: Are there any php mail classes out there that authenticate properly with an exchange server?
Another EDIT: The Exchange Server uses NTLM authentication and uses Active directory. Hope this helps.
首先,服务器:在Windows 2003 Server sp2上运行的Exchange 2003 sp2 p>
以下是发送电子邮件的代码: p>
我从未使用HTML Mime Mail对Exchange服务器进行身份验证 PHP( http://www.phpguru.org/static/mime.mail.html )之前的课程。 任何帮助将不胜感激。 p>
也许有另一个PHP类可以轻松地允许使用Exchange服务器进行身份验证? p>
编辑:是否有任何php邮件 那些使用交换服务器正确验证的类? p>
另一个编辑:Exchange Server使用NTLM身份验证并使用Active Directory。 希望这会有所帮助。 p>
div>
$ mail = new htmlMimeMail();
$ message = $ today。$ announcements。$ food。$ coming;
$ mail-> setHTML($ message);
$ mail-> setSubject($ subject);
$ mail-> setSMTPParams('mail.domain.com',25,true,'user',' 通过);
$的MAIL-> setFrom( “no-reply@domain.com”);
$的MAIL-> setReturnPath( “webmaster@domain.com”);
如果($消息)
$ mailresult = $ mail-> send(array($ emailto));
code> pre>
Exchange supports the standard SMTP Auth mechanism, so I would use that. Here is an example using Pear::Mail from here.
<?php
require_once "Mail.php";
$from = "Sandra Sender <sender@example.com>";
$to = "Ramona Recipient <recipient@example.com>";
$subject = "Hi!";
$body = "Hi,
How are you?";
$host = "mail.example.com";
$username = "smtp_username";
$password = "smtp_password";
$headers = array ('From' => $from,
'To' => $to,
'Subject' => $subject);
$smtp = Mail::factory('smtp',
array ('host' => $host,
'auth' => true,
'username' => $username,
'password' => $password));
$mail = $smtp->send($to, $headers, $body);
if (PEAR::isError($mail)) {
echo("<p>" . $mail->getMessage() . "</p>");
} else {
echo("<p>Message successfully sent!</p>");
}
?>