Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Problem z formularzem phpmailer
Poczatkujacy_Web
post 6.09.2016, 12:33:00
Post #1





Grupa: Zarejestrowani
Postów: 145
Pomógł: 0
Dołączył: 30.07.2012
Skąd: Łódź

Ostrzeżenie: (10%)
X----


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');
Go to the top of the page
+Quote Post
lukaskolista
post 6.09.2016, 15:43:34
Post #2





Grupa: Zarejestrowani
Postów: 872
Pomógł: 94
Dołączył: 31.03.2010

Ostrzeżenie: (0%)
-----


Czemu do wysyłki jednego emaila używasz biblioteki PHPMailer, a do wysyłki drugiego natywnej funkcji mail?
Go to the top of the page
+Quote Post
Poczatkujacy_Web
post 7.09.2016, 08:37:26
Post #3





Grupa: Zarejestrowani
Postów: 145
Pomógł: 0
Dołączył: 30.07.2012
Skąd: Łódź

Ostrzeżenie: (10%)
X----


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
Go to the top of the page
+Quote Post
lukaskolista
post 7.09.2016, 11:58:42
Post #4





Grupa: Zarejestrowani
Postów: 872
Pomógł: 94
Dołączył: 31.03.2010

Ostrzeżenie: (0%)
-----


  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).
Go to the top of the page
+Quote Post
Poczatkujacy_Web
post 11.09.2016, 00:17:36
Post #5





Grupa: Zarejestrowani
Postów: 145
Pomógł: 0
Dołączył: 30.07.2012
Skąd: Łódź

Ostrzeżenie: (10%)
X----


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. ?>

Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 23.04.2024 - 13:43