[英]Problem while sending email in php
我執行php郵件腳本時遇到一個奇怪的錯誤。 它與服務器相關無法驗證發件人。 我看到以下錯誤:
無法添加收件人email@domain.com [SMTP:從服務器收到無效的響應代碼(代碼:550,響應:驗證因無法路由的地址發送者驗證失敗而失敗)]
你知道為什么會出現這個錯誤嗎?
<?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);
?>
你在這里做的是嘗試發送電子郵件,因為你是domain.com
的所有者/用戶。
如果要通過PHP發送電子郵件,則必須提供某些電子郵件服務器的有效憑據。 您可以在自己的計算機上自行創建郵件服務器,但需要付出一些努力。 好吧,在UNIX中它更容易,在Windows上你必須下載一些像hMailServer這樣的軟件。
因此,創建一個Gmail.com帳戶, 在這里您可以在腳本中設置配置數據(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
這個例子可能會有所幫助。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.