0

誰かが特定のメールにメッセージを送信できるように、連絡フォームを作成しています。ただし、非常に永続的で消えないエラーメッセージが表示されます。

Warning: mail(): Failed to connect to mailserver at "localhost" port 25, verify your "SMTP" and "smtp_port" setting in php.ini or use ini_set() in C:\wamp\www\mail.php on line 10

指定どおりに10行目にini_set()を入れてみましたが、何も変わりません。何が原因なのか調べてみましたが、今のところ出てきません。WAMP はメールをサポートしていないのではないかと考えていました。


HTML コード

<form action = "mail.php" method=  "POST">
    <p>Name</p> <input name = "name" type = "text">
    <p>Email</p> <input name = "email" type = "text">

    <p>Message</p><textarea name = "message" rows = "6" cols = "25"></textarea><br />
    <input value = "Send" type = "submit" >
    <input value = "Reset Form" type = "reset">
</form>

送信ボタンを介して mail.php にデータを送信するフォームが正常に作成された場合。


PHP コード

<?php
$name = $_POST['name'];
$email = $_POST['email'];
$message = $_POST['message'];

$recipient = "To: myawesome.email@gmail.com";
$mailheader = "From: $name \r\n";
$formcontent= "From: $email \r\n Message: $message";

mail($recipient, $mailheader, $formcontent) or die("Error!");
echo "Your message has been delivered." . " -" . "<a href='form.html' style='text-decoration: none; color: #ff0099;'> Return Home </a>";
?>

ここで、mail.php は $recipient、$mailheader、および $formcontent を受け取り、指定されたアドレスにそれらを電子メールで送信することになっています。

どんな助けでも大歓迎です。

4

2 に答える 2

3

ポート 25 で実行されているメール サーバーがないか (ほとんどの場合)、ポートをブロックしているソフトウェア ファイアウォールがあります。


ローカルで実行されているメール サーバーでも、ISP はポート 25 をブロックする可能性が高いことに注意してください。これは、スパムを防止するための通常の方法です。

ローカル サーバーからテストし、実際にメールが配信されるようにするには、おそらく外部のメール プロバイダーを使用し、25 以外のポートで接続する必要があります。Gmail の SMTP サーバー (TLS、ポート 465) はここで驚くほど機能します。ただし、Gmail アカウントから認証して送信する必要があります。

于 2013-04-11T01:15:58.253 に答える
0

メールサーバーが適切に構成されているかどうか、またはこのサンプルのように構成されているかどうかを確認しようとしましたか

// Please specify your Mail Server - Example: mail.example.com.

ini_set("SMTP","mail.example.com");
// Please specify an SMTP Number 25 and 8889 are valid SMTP Ports.

ini_set("smtp_port","25");

// Please specify the return address to use

ini_set('sendmail_from', 'example@YourDomain.com')
;

またはこれについてphp.iniファイルを確認してください。サンプル構成をここに示します。

[mail function]
; For Win32 only.
SMTP = localhost
smtp_port = 25

; For Win32 only.
;sendmail_from = me@example.com
; For Unix only.  You may supply arguments as well (default: "sendmail -t -i").
于 2013-04-11T01:12:49.110 に答える