簡體   English   中英

在php中發送電子郵件時出現問題

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM