2013-02-11 3 views
1

Я настраиваю на SMTP IIS веб-сервер, используя phpнастройка SMTP на php.ini с аутентификацией

В файле php.ini раздел Smtp следующим образом:

[mail function] 
SMTP = outbound.mailhop.org 
smtp_port = 25 

auth_username = my_dyndns_username 
auth_password = pwd 

sendmail_from = [email protected] 

Проблема в том, что, когда я попробуйте позвонить по почте() работать сервер SMTP говорит

SMTP server response: 550 You must authenticate to use Dyn Standard SMTP 

, где я могу сказать IIS (или PHP) имя пользователя и пароль для б e аутентифицировано на сервере dyndns?

Дарио

+0

, похоже, вам необходимо либо использовать библиотеку почты или написать ваш собственный разговор напрямую с почтовым сервером –

ответ

0

SMTP Для использования аутентификации с PHP вы хотите использовать расширение почты PEAR ... вот nice post говорю вам, как использовать его.

В принципе, вам нужно установить extension (windows instructions), а затем настроить немного кода что-то вроде этого (из поста выше):

<?php 
require_once "Mail.php"; 

$from = "Sandra Sender <[email protected]>"; 
$to = "Ramona Recipient <[email protected]>"; 
$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>"); 
    } 
?> 
+0

, но как это сделать без внешних библиотек? Я имею в виду, я хочу использовать чистую конфигурацию php.ini ... это возможно? –

+1

Удачи вам в том, чтобы работать без 'PEAR' lib ... Я никогда не видел этого. BTW, 'PEAR' на самом деле не внешняя библиотека, это расширения (то есть функции PHP), и она размещается людьми, которые создают PHP http://pear.php.net/ --- это не похоже на написание вашей собственной функции делайте это, за исключением того, что их функции, вероятно, будут лучше :) –

1

Я нашел swift mailer быть решение сформировать мой проблема.

с помощью этого простого скрипта у меня все работает

$transport = Swift_SmtpTransport::newInstance('outbound.mailhop.org', 25) 
       ->setUsername('user') 
       ->setPassword('pwd'); 

$mailer = Swift_Mailer::newInstance($transport); 


$message = Swift_Message::newInstance() 
     ->setSubject($sbj) 
     ->setFrom($from) 
     ->setReplyTo($replyTo) 
     ->setTo($to) 
     ->setBody($msg); 

$result = $mailer->send($message); 

here книга о том, как сделать с другими функциями/параметры

Смежные вопросы