2011-09-16 14 views
0

PHPメールスクリプトを実行すると、私は奇妙なエラーに直面しています。サーバーに関連して、送信者を確認できませんでした。次のエラーが表示されます。PHPで電子メールを送信中に問題が発生しました

Failed to add recipient [email protected] [SMTP: Invalid response code received from server (code:550, response: Verification failed for unrouteable address Sendor verify failed)]

なぜこのエラーがポップアップ表示されるのですか?

<?php 
require_once "Mail.php"; 
$kw = (string)$_GET['keyword']; 
$e = (string)$_GET['emailid']; 
$uname="xxx"; 
$password="xxx"; 
$con=mysql_connect("Localhost","root",""); 
if(!$con) 
{ 
die('Could not connect: ' . mysql_error()); 
} 

mysql_select_db("mysql_db",$con); 

mysql_query("INSERT INTO mail_alert  (uname,emailid,password,keyword)values('$kw','$e','$uname','$password')"); 



$from = "mail.domain.com"; 
$to = $e; 
$subject = "Hi!"; 
$body = "Hi,\n\nHow are you?"; 
$host = "ssl://domain.com"; 
$port="465"; 
$username = "login"; 
$password = "xxx"; 

$headers = array ('From' => $from, 
'To' => $to, 
'Subject' => $subject); 
$smtp =Mail::factory('smtp', 
array ('host' => $host, 
'port' => $port, 
'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>"); 
} 


mysql_close($con); 

?>

答えて

2

あなたがここでやっていることは、あなたがdomain.comの所有者/利用者だったとして電子メールを送信しようとしています。

PHP経由で電子メールを送信する場合は、一部の電子メールサーバーの有効な資格情報を提供する必要があります。マシン上に自分でメールサーバーを作成することはできますが、多少の労力が必要です。さて、UNIXでは簡単ですが、WindowsではhMailServerのようなソフトウェアをダウンロードする必要があります。

簡単な解決方法はcreate account on some third-party service, e.g. Gmailです。

Gmail.comアカウントを作成し、hereスクリプトに設定する設定データ(SMTPアドレス、ポート番号、ユーザー名とパスワードはGmailのアカウント名です)を作成します。

SMTP: smtp.gmail.com 
Port for TLS/STARTTLS: 587 
Port for SSL: 465 
User name: your Gmail email address 
Password: your Gmail password 

This exampleが役に立ちます。

関連する問題