1

IISを使用してWebサーバーにsmtpをセットアップしていますphp

ファイルのphp.inismtp セクションは次のとおりです。

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

auth_username = my_dyndns_username
auth_password = pwd

sendmail_from = no-reply@website.com

問題は、mail() 関数を呼び出そうとすると、smtp サーバーが言うことです

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

dyndns サーバーで認証されるために、IIS (または php) にユーザー名とパスワードをどこで教えればよいですか?

ダリオ

4

2 に答える 2

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

これは、他の関数/パラメーターの使用方法に関する本です

于 2013-02-12T08:08:29.687 に答える
0

SMTPPHP で認証を使用するには、Mail拡張PEAR機能を使用する必要があります。使用方法を説明している素敵な投稿を次に示します。

基本的に、拡張機能をインストールして( windows instructions )、次のようなコードを少し構成する必要があります (上記の投稿から):

<?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>");
  }
 ?>
于 2013-02-11T23:42:45.633 に答える