E-posta göndermek, ancak Exchange sunucusu üzerinden kimlik doğrulaması gerekir PHP için HTML Mime Mail kullanarak

1 Cevap php

Öncelikle, sunucu: Windows 2003 Server SP2 üzerinde Exchange 2003 SP2 çalıştıran

Ben iki e-posta hesapları, @ biri olarak adlandırılan öğrenciler ve diğer varlık fs @ (fakülte / personel) e-posta gönderen bir komut dosyası var. Biz sadece spam / önemsiz posta kendimizi yedek, exchange sunucusu üzerinde kimliği doğrulanmış kullanıcılar tarafından gelen e-postaları kabul etmek bu e-posta hesapları hem de belirliyor. Yani şu anda komut dosyası tarafından gönderilen e-postalar başarılı değildir. Ben okunaklı bir kullanıcı olarak geri dönüş yolu e-posta var, ama bu doğrulanmış değil. Benim posta istemcisi (Apple'ın Mail.app) üzerinden bir test göndererek denedim ve ben onların IMAP sunucu üzerinden değil, değişim yoluyla e-posta kullanmak beri, benim e-posta hem de başarısız olduğunu fark ettim.

İşte e-posta göndermek için kodu:

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

Ben önce PHP için HTML Mime Mail kullanarak (http://www.phpguru.org/static/mime.mail.html) sınıf bir Exchange Server ile doğrulanmış hiç. Herhangi bir yardım mutluluk duyacağız.

Belki kolayca bir Exchange sunucusu ile kimlik doğrulaması sağlayan bir PHP sınıfı var mı?

EDIT: bir Exchange Server ile düzgün bir kimlik doğrulaması orada herhangi bir php mail sınıfları var mı?

Başka EDIT: Exchange Server NTLM kimlik doğrulaması kullanır ve Active dizini kullanır. Umarım bu yardımcı olur.

1 Cevap

Döviz standardını SMTP Auth mekanizması destekler, bu yüzden bunu kullanmak istiyorsunuz. Burada Pear::Mail here ikinci kullanarak bir örnektir.

<?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>");
 }
?>