Использование HTML Mime Mail для PHP для отправки электронной почты, но необходимо пройти проверку подлинности через сервер Exchange - PullRequest
2 голосов
/ 16 декабря 2008

Прежде всего, сервер: Exchange 2003 sp2, работающий на Windows 2003 Server sp2

У меня есть сценарий, который отправляет электронную почту на две учетные записи электронной почты, одна из которых называется Students @, а другая - fs @ (Faculty / Staff). Мы настраиваем обе эти учетные записи электронной почты так, чтобы они принимали входящую электронную почту только аутентифицированным пользователям на сервере Exchange, чтобы избавиться от спама / нежелательной почты. Так что сейчас электронные письма, отправляемые сценарием, не являются успешными. У меня есть законный пользователь с обратным путем, но он не аутентифицирован. Я заметил, что когда я пытался отправить тест через мой почтовый клиент (Apple's Mail.app) и поскольку я использую электронную почту через их сервер IMAP, а не через обмен, моя электронная почта также не удалась.

Вот код для отправки электронного письма:

$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));

Я никогда не проходил аутентификацию на сервере Exchange, используя HTML Mime Mail для PHP (класс http://www.phpguru.org/static/mime.mail.html), прежде. Любая помощь приветствуется.

Может быть, есть другой класс PHP, который легко разрешает аутентификацию на сервере Exchange?

РЕДАКТИРОВАТЬ: Существуют ли какие-либо php-классы почты, которые аутентифицируются должным образом на сервере Exchange?

Другое РЕДАКТИРОВАНИЕ: Exchange Server использует NTLM-аутентификацию и Active Directory. Надеюсь, это поможет.

1 Ответ

4 голосов
/ 16 декабря 2008

Exchange поддерживает стандартный механизм SMTP Auth , поэтому я бы использовал это. Вот пример использования Pear :: Mail из здесь .

<?php
require_once "Mail.php";

$from = "Sandra Sender <sender@example.com>";
$to = "Ramona Recipient <recipient@example.com>";
$subject = "Hi!";
$body = "Hi,\n\nHow 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>");
 }
?>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...