我有提交電子郵件並將用戶電子郵件保存到數據庫的php表單(Joomla模塊)。 表單正在檢查用戶電子郵件是否已經存在於數據庫中,如果沒有保存電子郵件(新的joomla用戶被創建)並且郵件被提交給管理員電子郵件和用戶電子郵件。這部分工作正常。 但是,如果電子郵件已經在數據庫(返回用戶場景)表單發送雙重電子郵件給管理員和用戶。PHP郵件 - 雙電子郵件(Joomla模塊)
$mailer = & JFactory::getMailer();
$mailer->isHTML();
$mailer->setSender($params->get('email_from'));
$mailer->addRecipient($params->get('email_to'));
$mailer->addBCC($email);
$mailer->setSubject($params->get('subject'));
$mailer->setBody($message);
$db = JFactory::getDbo();
$query = $db->getQuery(true);
$query = 'SELECT id FROM #__users WHERE email = ' . $db->Quote($email);
$db->setQuery($query, 0, 1);
$check = $db->loadResult();
if(!$check){
$udate = date('d/m/Y');
$utime= date("h:i:s");
$udata = array(
"name"=>"user".$udate."-".$utime,
"username"=>"user".$utime,
"password"=>$utime,
"password2"=>$utime,
"email"=>$email,
"block"=>0,
"groups"=>array("9")
);
$user = clone(JFactory::getUser());
if(!$user->bind($udata)) {
throw new Exception("Could not bind data. Error: " . $user->getError());
}
if (!$user->save()) {
throw new Exception("Could not save user. Error: " . $user->getError());
}
return $user->id;
JFactory::getSession()->clear('user');
}
$send = & $mailer->Send();
$mailer->ClearAddresses();
$mailer->ClearAllRecipients();
if($send = true){
echo "Mail sent";
return true;
}
else if ($send != true)
{
echo "Error sending email: ". $send->message;
return false;
}
}
我也試過這個,但沒有結果$ send =&$ mailer-> Send(); \t \t if(!$ send){ \t \t \t echo「發送郵件時出錯:」。 $發送 - >消息; \t \t \t return false; \t \t \t} \t \t \t 其他\t { \t \t \t $ \t mailer-> ClearAllRecipients(); \t \t $ mailer-> ClearAddresses(); \t \t $ mailer-> ClearBCCs(); \t \t unset($ mailer); echo「郵件發送」; \t \t \t return true;} – Rada