1

ラップトップで wamp サーバーを使用してメールを送信しようとしています。SMTP サーバーはオンラインで表示されます。メールを送信するための私のphpコードは次のとおりです。

<?php
        ini_set( 'SMTP', "mail.vickey1192.co.in" );
        ini_set( 'smtp_port', 26 );
        ini_set( 'sendmail_from', "admin@vickey1192.co.in" );

        $to = "balavickey1192@gmail.com";
        $subject = "Acknowledgement";
        $message = "Thank you for registering with us<br>";
        $from = "no-reply@vickey1192.co.in";
        $headers = "From:" . $from;

        mail($to,$subject,$message,$headers);
        echo "Mail Sent.";
?>

また、php.ini ファイルを次のように設定します。

[mail function]
; For Win32 only.
; http://php.net/smtp
SMTP = mail.vickey1192.co.in
; http://php.net/smtp-port
smtp_port = 26

; For Win32 only.
; http://php.net/sendmail-from
sendmail_from = admin@vickey1192.co.in

これは私が得ているエラーです:

警告: mail() [function.mail]: SMTP サーバーの応答: 550-メッセージを送信する前に、メール クライアントで SMTP 認証をオンにするか、550-IMAP/POP3 サーバーにログインしてください。(vignesh-PC) 550-[115.118.170.201]:23328 は、認証なしでこのサーバー 550 を介して中継することは許可されていません。C:\wamp\www\mailtofunc.php の 12 行目

私は今何をしますか?みんな助けてください...

4

2 に答える 2

3

認証に問題があると思います。電子メールを送信するには、SMTP ユーザーのユーザー名とパスワードをメール機能に追加する必要があります。

  //Using built in mail method
  $mail = new PHPMailer();
  $mail->Host = 'smtp.example.com'
  $mail->SMTPAuth = true;     // turn on SMTP authentication
  $mail->Username = 'your_username@example.com';  // a valid email here
  $mail->Password = 'replace_with_your_password';
  $mail->From = 'from@example.com';
  $mail->AddReplyTo('from@example.com', 'Test');

  $mail->FromName = 'Test SMTP';
  $mail->AddAddress('test1@example.com', 'test2@example.com');

  $mail->Subject = 'Test SMTP';
  $mail->Body = 'Hello World'; 

  $mail->Send();

使い方を知っているなら、PHP の Pear メール機能を試したほうがよいかもしれません。

//Using PEAR's mail function
<?php
  include('Mail.php');

  /* mail setup recipients, subject etc */
  $recipients = "your_recipients@example.com";
  $headers["From"] = "user@example.com";
  $headers["To"] = "feedback@example.com";
  $headers["Subject"] = "Some Subject";
  $mailmsg = "Hello, This is a test.";

  /* SMTP server name, port, user/passwd */
  $smtpinfo["host"] = "smtp.example.com";
  $smtpinfo["port"] = "25";
  $smtpinfo["auth"] = true;
  $smtpinfo["username"] = "smtpusername";
  $smtpinfo["password"] = "smtpPassword";

  /* Create the mail object using the Mail::factory method */
  $mail_object =& Mail::factory("smtp", $smtpinfo);

  /* Ok send mail */
  $mail_object->send($recipients, $headers, $mailmsg);

?>
于 2013-09-05T06:46:39.020 に答える
2

メールサーバーは、あなたからのメールを受け入れる前に認証 (ユーザー名 + パスワード) を必要とします。SMTP接続を介して提供するか(SMTP AUTHを使用、できればTLSを使用)、または最初にログインしてメールを「チェック」するPOP before SMTPと呼ばれる手法を実行することをお勧めします。これにより、ホストが一時的にホワイトリストに登録されますそのため、その後しばらくメールを送信できます。

于 2013-09-05T06:38:53.700 に答える