phpmailer не может добавить ответ на адрес - PullRequest
7 голосов
/ 21 октября 2010

Я пытаюсь добавить ответ на адрес моей почтовой программы php, и он просто выводит от меня и отвечает на мой адрес.

Есть идеи, что я делаю не так? Я добавил $ mail-> AddReplyTo. Я хочу, чтобы он ответил отправителю веб-формы.

$name = $_POST['name'];
$telephone = $_POST['telephone'];
$email = $_POST['email'];
$message = $_POST['message'];

$body             = file_get_contents('phpmailer/contents.html');
$body             = eregi_replace("[\]",'',$body);
$body             = eregi_replace("<name>", $name,$body);
$body             = eregi_replace("<telephone>", $telephone, $body);
$body             = eregi_replace("<email>", $email, $body);
$body             = eregi_replace("<message>", $message, $body);




$mail->IsSMTP(); // telling the class to use SMTP
$mail->Host       = "smtp.gmail.com"; // SMTP server
                    // enables SMTP debug information (for testing)
                                           // 1 = errors and messages
                                           // 2 = messages only
$mail->SMTPAuth   = true;                  // enable SMTP authentication
$mail->SMTPSecure = "ssl";                 // sets the prefix to the servier
$mail->Host       = "smtp.gmail.com";      // sets GMAIL as the SMTP server
$mail->Port       = 465;                   // set the SMTP port for the GMAIL server
$mail->Username   = "xxx@xxx.net";  // GMAIL username
$mail->Password   = "xxxxx"; 

$mail->AddReplyTo($email, $name);


$address = "xxxx.net";

$mail->AddAddress($address, "Contact form");

$mail->Subject    = " Contact Form";

1 Ответ

2 голосов
/ 21 октября 2010

Необходимо попробовать убедиться, что переменные $email и $name переданы правильно (добавьте несколько операторов отладки, чтобы вывести их на экран). Не уверен, что вы сделали это или проверяете, опубликовала ли форма или нет. Но это будет первый шаг.

Из моей работы с PHPMailer и GMail они работают не очень хорошо. Вместо этого я бы предложил попробовать скрипт phpGMailer . Это прекрасно работает для GMail. Посмотрите, не решит ли это ваши проблемы.

UPDATE

Размышляя об этом, я не думаю, что GMail разрешает изменение адреса ReplyTo, если только у учетной записи GMail не активирована авторизация для этой учетной записи. Я не уверен на 100% в этом, но через веб-интерфейс я знаю, что это невозможно.

Не по теме

Я бы не стал использовать eregi_replace, но это амортизируется. Я бы использовал preg_replace вместо этого. Вот обновленная версия, чтобы вы могли обновить свой код:

$body             = file_get_contents('phpmailer/contents.html');
$body             = preg_replace("~[\]~",'',$body);
$body             = preg_replace("~<name>~i", $name,$body);
$body             = preg_replace("~<telephone>~i", $telephone, $body);
$body             = preg_replace("~<email>~i", $email, $body);
$body             = preg_replace("~<message>~i", $message, $body);
...