Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Problem z formularzem phpmailer
Forum PHP.pl > Forum > PHP
Poczatkujacy_Web
Witam,

mam problem z dostosowaniem formularza tak aby wysyłał 2 maile

1 - do mnie, z wypełnionymi danymi na stronie - to działa ok
2 - do klienta z podziękowaniem i załączonym plikiem

Co aktualnie robi mój kod
- Przesyła email do mnie i do klienta
- Załącznik zamiast dołączyć do klienta dołącza do wiadomości do mnie

Co chciałbym skorygować:
- Załącznik powinien być przesyłany jedynie do klienta
- Chciałbym również dodać opóźnienie wysyłki maila do klienta

Poniżej mój kod, będę wdzięczny za każdą pomoc.

Pozdrawiam!



  1. <?php
  2.  
  3. require_once 'class.phpmailer.php';
  4.  
  5. $_POST = array_map('trim', $_POST);
  6.  
  7. $error = false;
  8.  
  9. if (!isset($_POST['contact_name']) || empty($_POST['contact_name'])) {
  10. $error = true;
  11. }
  12.  
  13. if (!isset($_POST['contact_email']) || empty($_POST['contact_email']) || !PHPMailer::ValidateAddress($_POST['contact_email'])) {
  14. $error = true;
  15. }
  16.  
  17. if (!isset($_POST['contact_body']) || empty($_POST['contact_body'])) {
  18. $error = true;
  19. }
  20.  
  21. if (!isset($_POST['contact_check']) || empty($_POST['contact_check']) || (int) $_POST['contact_check'] !== ((int) $_POST['contact_check_data'][0] * (int) $_POST['contact_check_data'][1])) {
  22. $error = true;
  23. }
  24.  
  25. if ($error) {
  26. exit('nok');
  27. }
  28.  
  29. $mail = new PHPMailer();
  30.  
  31. $mail->CharSet = 'UTF-8';
  32. $mail->SetFrom($_POST['contact_email'], $_POST['contact_name']);
  33. $mail->AddAddress(mojadres@gmail.com');
  34. $mail->Subject = 'Wiadomość ze strony internetowej';
  35. $mail->Body = $_POST['contact_body'];
  36.  
  37.  
  38.  
  39. /* Prepare autoresponder subject */
  40. $respond_subject = "Thank you for contacting us!";
  41. $emailfrom = "mojadres@gmail.com";
  42. $email = ($_POST['contact_email']);
  43.  
  44. /* Prepare autoresponder message */
  45. $respond_message = "Hello!
  46.  
  47.  
  48. Thank you for contacting us! We will get back to you
  49. as soon as possible!
  50.  
  51. Yours sincerely,
  52.  
  53. Your name
  54. www.yourwebsite.com
  55. ";
  56.  
  57. /* Send the message using mail() function */
  58.  
  59. mail($email, $respond_subject, $respond_message, "From: $emailfrom");
  60. $mail->AddAttachment("../oferta.pdf");
  61.  
  62.  
  63.  
  64.  
  65. if (!$mail->Send()) {
  66.  
  67.  
  68. exit('nok');
  69. }
  70.  
  71.  
  72.  
  73.  
  74.  
  75. exit('ok');
lukaskolista
Czemu do wysyłki jednego emaila używasz biblioteki PHPMailer, a do wysyłki drugiego natywnej funkcji mail?
Poczatkujacy_Web
Cytat(lukaskolista @ 6.09.2016, 16:43:34 ) *
Czemu do wysyłki jednego emaila używasz biblioteki PHPMailer, a do wysyłki drugiego natywnej funkcji mail?


bo tylko tak to działa smile.gif jak masz sugestie jak mogę to rozwiązać prawidłowo to proszę o podpowiedź, bądź jakiś przykład
lukaskolista
  1. $mail = new PHPMailer;
  2. $mail->setFrom('from@example.com', 'Your Name');
  3. $mail->addAddress('myfriend@example.net', 'My Friend');
  4. $mail->Subject = 'First PHPMailer Message';
  5. $mail->Body = 'Hi! This is my first e-mail sent through PHPMailer.';
  6. if(!$mail->send()) {
  7. echo 'Message was not sent.';
  8. echo 'Mailer error: ' . $mail->ErrorInfo;
  9. } else {
  10. echo 'Message has been sent.';
  11. }

Powyższe wykonaj 2x jedno pod drugim - 1 raz dla użytkownika, drugi dla Ciebie.
(Jakość powyższego rozwiązania jest kiepska, ale działa).
Poczatkujacy_Web
Cytat(lukaskolista @ 7.09.2016, 12:58:42 ) *
  1. $mail = new PHPMailer;
  2. $mail->setFrom('from@example.com', 'Your Name');
  3. $mail->addAddress('myfriend@example.net', 'My Friend');
  4. $mail->Subject = 'First PHPMailer Message';
  5. $mail->Body = 'Hi! This is my first e-mail sent through PHPMailer.';
  6. if(!$mail->send()) {
  7. echo 'Message was not sent.';
  8. echo 'Mailer error: ' . $mail->ErrorInfo;
  9. } else {
  10. echo 'Message has been sent.';
  11. }

Powyższe wykonaj 2x jedno pod drugim - 1 raz dla użytkownika, drugi dla Ciebie.
(Jakość powyższego rozwiązania jest kiepska, ale działa).


Dzięki, naprowadziłeś mnie na rozwiązanie smile.gif pozostaje jeszcze kwestia opóźnienia wysyłki tego drugiego maila, ale to już nowy temat

poniżej kod, gdyby ktoś szukał podobnego rozwiązania.

  1. <?php
  2.  
  3. require_once 'class.phpmailer.php';
  4.  
  5. $_POST = array_map('trim', $_POST);
  6.  
  7. $error = false;
  8.  
  9. if (!isset($_POST['contact_name']) || empty($_POST['contact_name'])) {
  10. $error = true;
  11. }
  12.  
  13. if (!isset($_POST['contact_email']) || empty($_POST['contact_email']) || !PHPMailer::ValidateAddress($_POST['contact_email'])) {
  14. $error = true;
  15. }
  16.  
  17. if (!isset($_POST['contact_body']) || empty($_POST['contact_body'])) {
  18. $error = true;
  19. }
  20.  
  21. if (!isset($_POST['contact_check']) || empty($_POST['contact_check']) || (int) $_POST['contact_check'] !== ((int) $_POST['contact_check_data'][0] * (int) $_POST['contact_check_data'][1])) {
  22. $error = true;
  23. }
  24.  
  25. if ($error) {
  26. exit('nok');
  27. }
  28.  
  29. $mail = new PHPMailer();
  30.  
  31. $mail->CharSet = 'UTF-8';
  32. $mail->SetFrom($_POST['contact_email'], $_POST['contact_name']);
  33. $mail->AddAddress('infozformularza@gmail.com');
  34. $mail->Subject = 'Wiadomość ze strony internetowej';
  35. $mail->Body = $_POST['contact_body'];
  36.  
  37.  
  38.  
  39. if(!$mail->send()) {
  40. echo 'Message was not sent.';
  41. echo 'Mailer error: ' . $mail->ErrorInfo;
  42. } else {
  43.  
  44.  
  45.  
  46.  
  47.  
  48.  
  49. $mail = new PHPMailer();
  50.  
  51.  
  52. $mail->CharSet = 'UTF-8';
  53. $mail->SetFrom('mojmail@gmail.com', 'Ja');
  54. $mail->AddAddress($_POST['contact_email'], $_POST['contact_name']);
  55. $mail->Subject = "Thank you for contacting us!";
  56. $mail->Body = "Hello!
  57.  
  58. Thank you for contacting us! We will get back to you
  59. as soon as possible!
  60.  
  61. Yours sincerely,
  62.  
  63. Your name
  64. www.yourwebsite.com
  65. ";
  66.  
  67.  
  68. $mail->AddAttachment("../plik.pdf");
  69.  
  70.  
  71.  
  72. if(!$mail->send()) {
  73. echo 'Message was not sent.';
  74. echo 'Mailer error: ' . $mail->ErrorInfo;
  75. } else {
  76.  
  77. exit('ok');
  78. }
  79. }
  80.  
  81. ?>

To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.