-2

我正在尝试通过此 php 文件发送电子邮件,我正在使用 WAMP 服务器。我找不到 php.ini 文件来编辑它们,我正在我的 locaclhost 上运行这些 .php 文件。以下是代码,请看一下,我得到的错误是"Warning: mail(): SMTP server response: 550 The address is not valid. in C:\wamp\www\Test\dbregister.php on line 69"

<?php
// the following are for validating the inputs 

if (isset($_POST['name'])){
  if (ctype_alpha($_POST['name'])){
  $uname=$_POST['name'];}else{header('Location: register.php');};
}else{
  header('Location: register.php');
};

if (isset($_POST['pwd'])){
  $pwd=$_POST['pwd'];
}else{
  header('Location: register.php');
};

if (isset($_POST['email'])){
  if (filter_var($_POST['email'], FILTER_VALIDATE_EMAIL)) {
  $email=$_POST['email'];}else{header('Location: register.php');};
}else{
  header('Location: register.php');
};

if (isset($_POST['sex'])){
  $sex=$_POST['sex'];
}else{
  header('Location: register.php');
};

$host="localhost"; // Host name 
$username="root"; // Mysql username 
$password=""; // Mysql password 
$db_name="test"; // Database name 
$tbl_name="user"; // Table name 
@mysql_connect("$host","$username","$password") or die("cannot connect"); 
@mysql_select_db("$db_name")or die("cannot select DB");

$name=$_POST['name'];
$pwd=$_POST['pwd'];
$email=$_POST['email'];
$gender=$_POST['sex'];

// Insert data into mysql 
$sql="INSERT INTO $tbl_name(user_name, password, email)VALUES('$name', '$pwd',         '$email')";
$result=mysql_query($sql);

// if successfully insert data into database, displays message "Successful". 
if($result){
echo "Successful";
echo "<BR>";
echo "<a href='first.php'>Back to main page</a>";
// everything till here works fine, I am able to see the data in the data base tables.
// ---------------- SEND MAIL FORM ----------------
// send e-mail to ...
$to=$email;  // the email address would be taken from the another webpage
// Your subject
$subject="Your confirmation link here";
// From
$header="From: sushwanth.n@gmail.com";
// Your message
$message="Your Comfirmation link \r\n";
$message.="Test email \r\n";

// send email
mail($to,$subject,$message,$header);  // I am getting the error in this line.
//mail('sushwanth.n@gmail.com','Test Email','This is a test email.',"From:     sunnibaba1@gmail.com");
// I have used the above line too see if it works, but even that was showing and error
}

// if not found 
else {
echo "This email is already in use, If you are a registered user, clik below to login";
echo "<a href='login.php'>LOGIN</a>";
//echo " <form method="post" action="login.php"><input type="submit" name="login">    </form> ";
}
?>

请让我知道如何调试它,以及是否需要包含任何其他功能才能使其正常工作。

4

1 回答 1

0

您尝试使用的 SMTP 服务器可能需要身份验证,这是本机 mail() 命令不支持的。在这种情况下,您需要使用外部 PHP 类(例如 PHPMailer)并为 SMTP 服务器提供有效凭据。

你需要配置的文件大概是sendmail.ini:

确保包括您的电子邮件凭据和端口

于 2013-11-05T22:19:41.453 回答