2012-04-14 2 views
0

У меня проблема с некоторым программированием. Когда клиент заказывает столик в кафе на веб-сайте кафе, владелец кафе может пойти и одобрить или отклонить заказ. Затем клиент, который заказал доску, должен получить электронное письмо, в котором говорится, что письмо принято или отклонено.PHP Электронная почта для клиента

<?php 

// Connect to server and select database. 
mysql_connect("$host", "$username", "$password")or die("cannot connect"); 
mysql_select_db("$db_name")or die("cannot select DB"); 
mysql_query("SET NAMES utf8"); 
mysql_query("SET character_set_results='utf8&#8242;"); 

function escapeAddr($addr) { 
    $check = preg_match('/(.*)<(.*)>/', $addr, $a); 
    if ($check) $addr = '=?UTF-8?B?'.base64_encode($a[1]).'?= <'.$a[2].'>'; 
    return $addr; 
} 
function mail_utf8($to, $subject='no subject', $message='', $from='', $cc='', $bcc='') { 
$to = $email; 
$subject = "subject"; 
$message = "message" ; 
$from = escapeAddr($from); 
$header = 'From: '.$from.PHP_EOL 
      . 'Return-Path: '.$from.PHP_EOL 
      . 'Reply-To: '.$from.PHP_EOL 
      . 'MIME-Version: 1.0'.PHP_EOL 
      . 'Content-type: text/plain; charset=UTF-8'.PHP_EOL 
      . 'X-Mailer: PHP/'.phpversion().PHP_EOL 
      . 'Content-Transfer-Encoding: 8bit'.PHP_EOL; 
    if ($cc!='') $header .= 'Cc: '.escapeAddr($cc).PHP_EOL; 
    if ($bcc!='') $header .= 'Bcc: '.escapeAddr($bcc).PHP_EOL; 
    $header .= PHP_EOL; 
    return mail($to, '=?UTF-8?B?'.base64_encode($subject).'?=', $message, $header); 
} 

$g_id = (isset($_GET['id']) && is_numeric($_GET['id']) ? (int)$_GET['id'] : FALSE); 
if(!$g_id) { 
    echo 'Error'; // ID not currect 
} 
else { 
    $query = mysql_query("SELECT email FROM $tbl_name WHERE id=$g_id"); 
    $row = mysql_fetch_assoc($query); 
    $email = $row['email']; 

    if(mail_utf8($email, 'Table', 'message', '[email protected]')) { 
     echo 'Accepted'; 
    } 
    else 
    { 
     echo 'Error'; 
    } 
} 
?> 

Для того, чтобы иметь возможность одобрить или отклонить заказ, владелец должен зарегистрироваться. Поскольку это форма, которую вы нажимаете, чтобы отклонить или одобрить, но ссылку <a href, я использовал путь accept.php?Id=.

Письмо должно быть отправлено по электронной почте, что соответствует заказу.

+1

ваш вопрос не ясно пожалуйста, редактировать и поставить четкий вопрос для того, чтобы получить поддержку –

+0

Вопрос заключается в том: Have Могу ли я получить эту работу. - он не работает, если я нажимаю на ссылку accept. Клиент не получает электронное письмо, если владелец принимает и отклоняет заказ. Проверьте ошибки и коды. Может быть, что-то не должно быть там, может быть, я чего-то пропущу. Не знаю. – user1333574

+0

** Спам **, если вы это сделаете, ваши письма, возможно, всегда попадают в раздел спама/нежелательной почты, потому что это нормально выглядит спамом, помните все эти действительно ваш подписчик и для выполнения этой задачи используйте постоянный контакт или SSL –

ответ

0

Сначала персонаж Html в вашем втором Mysql-Query не должен быть там. Замените его на « И во-вторых, вы можете попытаться удалить кодировку Content-Transfer-Encoding из почтового заголовка. Третья, но тривиальная причина: $ tbl_name set? Вы уверены, что адрес в переменной $ from-variable имеет правильный формат для регулярного выражения?

1

на некоторых серверах, зависит от настроек, php mailer не работает! вам может понадобиться SMTP-класс для отправки почты.

Смежные вопросы