1

フォームからメールを送信しているときにエラーが発生します

「mail.yoursite.com」ポート25でメールサーバーに接続できませんでした。php.iniで「SMTP」と「smtp_port」の設定を確認するか、オンラインのC:\ xampp \ xampp \ htdocs \ send.phpでini_set()を使用してください。 8

警告:mail()[function.mail]:SMTPサーバーの応答:9行目のC:\ xampp \ xampp \ htdocs\send.phpで550アクセスが拒否されました

メッセージ配信に失敗しました...

これがコードです

mail.php

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
</head>

<body>
<form action="send.php" action="POST">
Enter Name : <input type="text" name="name" />
Enter E-Mail : <input type="text" name="email" />

Enter Subject: <input type="text" name="subject" />

Enter Message: <input type="text" name="mess" />

<input type="submit" name="Submit" />
</form>
<?php

?>



</body>
</html>

send.php

<?php
$name = $_POST['name'];
$email = $_POST['email'];
$body = $_POST['subject'];
$message=$_POST['message'];
//ini_set("sendmail_from","name@yoursite.com");
//ini_set("SMTP","mail.yoursite.com");
mail("name@yoursite.com", $name, $message, "From :$from");
if (mail('nishantmshah@gmail.com', $name, $body, $message, "From :$from")) {
  echo("<p>Message successfully sent!</p>");
 } else {
  echo("<p>Message delivery failed...</p>");
 }
?>
4

5 に答える 5

1

phpのwin32バージョンとそのsmtp-mail()の実装を使用しています。これは、いかなる種類の認証も実行できない小さなMTAです。電子メールを中継しようとしているSMTPサーバーで、mail()の認証が必要な場合は失敗します。
win32のsendmailを使用(および構成)します。または、 SwiftMailerなどの認証を実装するメーラークラス/ライブラリ。

ところで:Xamppはmercurysmtpサーバーをバンドルしています。デフォルトの構成では、ローカルのphpスクリプトからの電子メールを受け入れます。ただし、電子メールを別のMTAに中継するようにmecuryを構成する必要があります。

于 2009-12-26T19:20:00.273 に答える
0

このメッセージSMTP server response: 550 ACCESS DENIEDは、そのサーバーの資格情報をもう一度確認する必要があることを示しています。ユーザー名またはパスワードが正しくない可能性があります。

于 2009-12-26T19:14:18.210 に答える
0

PHPのメール機能では提供されていない認証を使用したい場合は、このPEARモジュールをインストールする必要があります。

SMTP認証を使用したPHPからのメールの送信-例

<?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>");
 }
?>
于 2009-12-26T19:17:21.947 に答える
0

基本的に、ホストされたサーバーを使用している場合は、冷たい水を飲むのと同じように、phpを使用して電子メールを送信するのは簡単です。

if(mail('to@bla.bla','subject','content here i include sometime var_export($var,1)'))
 echo 'email send succefull';
else
  echo 'emaiol coudnt be send';

ローカルマシンからこれを送信する場合、ほとんどのサーバーがこのような要求を拒否するため、これはほとんど失敗します。次に、Gmailなどのサービスからメールを送信するために外部ライブラリを使用する必要があります。

于 2009-12-26T19:23:41.217 に答える
0

VolkerKが指摘したように、自己完結型のSwiftmailを使用し、SMTPサーバーは必要ありません。Mercury + xamppで2日間使用しましたが、機能しませんでした。

このリンクの最初の例はすぐに機能します。

http://swiftmailer.org/docs/sending.html

于 2012-09-23T18:23:14.403 に答える