Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP]Wysyłanie poczty za pomocą PhpMailer.
Forum PHP.pl > Forum > Przedszkole
wuj_stach
Witam,

Mam aplikację która pobiera i wysyła pocztę tylko korzysta ona z funkcji mail() chciałbym ją przerobić aby korzystała ona z phpmailer ponieważ ma obsługiwać pocztę gmail. Proszę o pomoc jak można przerobić funkcję wysyłania. Z góry wielkie dzięki za wszelką pomoc.

A więc w tej aplikacji użytkownik może wywołać akcję new-message

  1. case 'new-message' :
  2. {
  3. display_new_message_form($_SESSION['auth_user'],
  4. $to, $cc, $subject, $body);
  5. break;
  6. }


Pojawią się formularz do wpisania i wysłana wiadomości, w momencie jak użytkownik kliknie na guzik Wyślij wywoła akcję send-message

  1. case 'send-message' :
  2. {
  3. if(send_message($to, $cc, $subject, $message))
  4. echo '<p>Message sent.</p><br /><br /><br /><br /><br /><br />';
  5. else
  6. echo '<p>Could not send message.</p><br /><br /><br /><br />
  7. <br /><br />';
  8. break;
  9. }


Powyższy kod wywoła funkcję send_message która właśnie korzysta z funkcji mail()

  1. function send_message($to, $cc, $subject, $message)
  2. {
  3. // send one email via PHP
  4.  
  5. if (!$conn=db_connect())
  6. {
  7. return false;
  8. }
  9. $query = 'select address from users where username=\''.$_SESSION['auth_user']."'";
  10.  
  11. $result = $conn->query($query);
  12. if (!$result)
  13. {
  14. return false;
  15. }
  16. else if ($result->num_rows==0)
  17. {
  18. return false;
  19. }
  20. else
  21. {
  22. $row = $result->fetch_object();
  23. $other = 'From: '.$row->address;
  24. if (!empty($cc))
  25. $other.="\r\nCc: $cc";
  26. if (mail($to, $subject, $message, $other))
  27. {
  28. return true;
  29. }
  30. else
  31. {
  32. return false;
  33. }
  34. }
  35. }


Chciałbym tak przerobić tą funkcję żeby wysyłała przy użyciu Phpmailer ale żeby pozostało pobieranie danych z bazy, żeby nadal używać tego formularza do pisania poczty itp.

  1. <?php
  2. require("phpmailer/class.phpmailer.php");
  3. $mailer = new PHPMailer();
  4. $mailer->IsSMTP();
  5. $mailer->Host = 'ssl://smtp.gmail.com:465';
  6. $mailer->SMTPAuth = TRUE;
  7. $mailer->Username = 'test@googlemail.com';
  8. $mailer->Password = 'test';
  9. $mailer->From = 'test@googlemail.com';
  10. $mailer->Body = 'This is the main body of the email';
  11. $mailer->Subject = 'This is the subject of the email';
  12. $mailer->AddAddress('test@o2.pl');
  13. if(!$mailer->Send())
  14. {
  15. echo "Message was not sent<br/ >";
  16. echo "Mailer Error: " . $mailer->ErrorInfo;
  17. }
  18. else
  19. {
  20. echo "Message has been sent";
  21. }
  22. ?>


Jeszcze raz z góry wielkie dzięki za pomoc.

Pozdraiwam.

tsdarky
Kiedyś napisałem sobie formularz do masowego spamowania smile.gif
plik send.php :
  1. <?php
  2. include'mailing.php';
  3. if($_POST['submit'])
  4. {
  5. mailme($from,$fromName,$host,$user,$pass,$temat,$img,$tresc,$adresy);
  6. }
  7. ?>
  8. <form action="<?php $PHP_SELF; ?>" method="post">
  9. <div style="width:600px; height:500px">
  10. <div style="height:30px">
  11. <div style="width:100px; float:left; text-align:center">Temat: </div>
  12. <div style="width:500px; float:right"><input type="text" name="temat" id="temat" style="width:480px" SIZE="78" maxlength="100" /></div>
  13. </div>
  14. <div style="height:350px">
  15. <div style="width:100px; float:left; text-align:center">Treść: </div>
  16. <div style="width:500px; float:right"><textarea rows="20" cols="58" name="tresc" id="tresc"></textarea></div>
  17. </div>
  18. <div style="height:20px">
  19. <div style="width:100px; float:left"> </div>
  20. <div style="width:500px; float:right"></div>
  21. </div>
  22. <div style="height:50px">
  23. <div style="width:100px; float:left"> </div>
  24. <div style="width:500px; float:right">
  25. <div style="width:250px; float:left"> </div>
  26. <div style="width:250px; float:right"> </div>
  27. </div>
  28. </div>
  29. <div style="height:100px">
  30. <div style="width:100px; float:left"> </div>
  31. <div style="width:500px; float:right; text-align:center">
  32. <div style="width:250px; float:left"> <input type="submit" name="submit" id="submit" value="Wyślij"> </div>
  33. <div style="width:250px; float:right"> <input type="reset" name="reset" id="reset" value="Usuń"> </div>
  34. </div>
  35. </div>
  36.  
  37. <div style="height:50px">
  38. <div style="width:100px; float:left"> </div>
  39. <div style="width:500px; float:right">
  40. <div style="width:250px; float:left"> </div>
  41. <div style="width:250px; float:right"> </div>
  42. </div>
  43. </div>
  44.  
  45. </div>
  46. </form>


plik mailing.php :
  1. <?php
  2.  
  3. function mailme($from,$fromName,$host,$user,$pass,$temat,$img,$tresc,$adresy)
  4. {
  5.  
  6. require("phpmailer/class.phpmailer.php");
  7. $mail = new PHPMailer();
  8.  
  9. $mail->PluginDir = "phpmailer/";
  10. $mail->From = $from;
  11. $mail->FromName = $fromName;
  12. $mail->Host = $host;
  13. $mail->Mailer = "smtp";
  14. $mail->Username = $user;
  15. $mail->Password = $pass;
  16. $mail->SMTPAuth = true;
  17. $mail->SetLanguage("pl", "phpmailer/language/");
  18. $mail->IsHTML(true);
  19. $mail->Subject = $temat;
  20. if($img[0] != '')
  21. {
  22. $mail->AddEmbeddedImage($img[0],$img[1],$img[2],$img[3]);
  23. }
  24.  
  25. $mail->Body = $tresc;
  26.  
  27.  
  28. foreach($adresy as $a => $b)
  29. {
  30. if($b != '')
  31. {
  32. $mail->AddAddress($adresy[$a]);
  33. }
  34. }
  35.  
  36.  
  37. if(!$mail->Send())
  38. {
  39. echo "E-mail nie został wysłany! <br>";
  40. echo $mail->ErrorInfo."<br>";
  41. }
  42. else
  43. {
  44. $mail->ClearAddresses();
  45. $mail->ClearAttachments();
  46. echo "E-mail został wysłany :)<br>";
  47. }
  48. }
  49.  
  50.  
  51. $from = "";
  52. $fromName = "";
  53. $host = "";
  54.  
  55. $user = "";
  56. $pass = "";
  57.  
  58. $temat = $_POST['temat'];
  59. $img = array($_POST['selected'], "obrazek", $_POST['selected'], "base64");
  60. $tresc = '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
  61. <html xmlns="http://www.w3.org/1999/xhtml">
  62. <head>
  63. <meta http-equiv="content-type" content="text/html; charset=iso-8859-2" />
  64. </head>
  65. <body>';
  66.  
  67. if($_POST['selected'] != '')
  68. {
  69. $tresc .= '<img alt="phpmailer" src="cid:obrazek"><br>';
  70. }
  71.  
  72. $tresc .= $_POST['tresc'];
  73. $tresc .= "</body></html>";
  74. $adresy = array("","");
  75. ?>


Aha w kodzie jest dodawanie obrazków więc albo usuń wszystko co dotyczy img albo dodaj przez formularz nazwe obrazka.

Pozdrawiam
gosienkami
mam inny formularz( kodowanie utf8 )i w wiadomosci brakuje polskich znaków sad.gif
wuj_stach
tsdarky dzieki za skrypciki dziś wieczorkiem jak wrócę z pracy to pokombinuję i dam znać jak uda mi się przerobić mój.

gosienkami jak możesz to wrzuć ten inny formularz napewno się przyda.

Z góry thx.

Hey,

Podpowie mi ktoś jak przerobić te moje skrypciki, bo nie bardzo wiem jak przerobić te skrypty tsdarky tak żeby dało się je podpiąc pod moje. z góry wielkie dzięki.

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