README 8.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218
  1. /*******************************************************************
  2. * The http://phpmailer.codeworxtech.com/ website now carries a few *
  3. * advertisements through the Google Adsense network. Please visit *
  4. * the advertiser sites and help us offset some of our costs. *
  5. * Thanks .... *
  6. ********************************************************************/
  7. PHPMailer
  8. Full Featured Email Transfer Class for PHP
  9. ==========================================
  10. Version 5.0.0 (April 02, 2009)
  11. With the release of this version, we are initiating a new version numbering
  12. system to differentiate from the PHP4 version of PHPMailer.
  13. Most notable in this release is fully object oriented code.
  14. We now have available the PHPDocumentor (phpdocs) documentation. This is
  15. separate from the regular download to keep file sizes down. Please see the
  16. download area of http://phpmailer.codeworxtech.com.
  17. We also have created a new test script (see /test_script) that you can use
  18. right out of the box. Copy the /test_script folder directly to your server (in
  19. the same structure ... with class.phpmailer.php and class.smtp.php in the
  20. folder above it. Then launch the test script with:
  21. http://www.yourdomain.com/phpmailer/test_script/index.php
  22. from this one script, you can test your server settings for mail(), sendmail (or
  23. qmail), and SMTP. This will email you a sample email (using contents.html for
  24. the email body) and two attachments. One of the attachments is used as an inline
  25. image to demonstrate how PHPMailer will automatically detect if attachments are
  26. the same source as inline graphics and only include one version. Once you click
  27. the Submit button, the results will be displayed including any SMTP debug
  28. information and send status. We will also display a version of the script that
  29. you can cut and paste to include in your projects. Enjoy!
  30. Version 2.3 (November 08, 2008)
  31. We have removed the /phpdoc from the downloads. All documentation is now on
  32. the http://phpmailer.codeworxtech.com website.
  33. The phpunit.php has been updated to support PHP5.
  34. For all other changes and notes, please see the changelog.
  35. Donations are accepted at PayPal with our id "paypal@worxteam.com".
  36. Version 2.2 (July 15 2008)
  37. - see the changelog.
  38. Version 2.1 (June 04 2008)
  39. With this release, we are announcing that the development of PHPMailer for PHP5
  40. will be our focus from this date on. We have implemented all the enhancements
  41. and fixes from the latest release of PHPMailer for PHP4.
  42. Far more important, though, is that this release of PHPMailer (v2.1) is
  43. fully tested with E_STRICT error checking enabled.
  44. ** NOTE: WE HAVE A NEW LANGUAGE VARIABLE FOR DIGITALLY SIGNED S/MIME EMAILS.
  45. IF YOU CAN HELP WITH LANGUAGES OTHER THAN ENGLISH AND SPANISH, IT WOULD BE
  46. APPRECIATED.
  47. We have now added S/MIME functionality (ability to digitally sign emails).
  48. BIG THANKS TO "sergiocambra" for posting this patch back in November 2007.
  49. The "Signed Emails" functionality adds the Sign method to pass the private key
  50. filename and the password to read it, and then email will be sent with
  51. content-type multipart/signed and with the digital signature attached.
  52. A quick note on E_STRICT:
  53. - In about half the test environments the development version was subjected
  54. to, an error was thrown for the date() functions (used at line 1565 and 1569).
  55. This is NOT a PHPMailer error, it is the result of an incorrectly configured
  56. PHP5 installation. The fix is to modify your 'php.ini' file and include the
  57. date.timezone = America/New York
  58. directive, (for your own server timezone)
  59. - If you do get this error, and are unable to access your php.ini file, there is
  60. a workaround. In your PHP script, add
  61. date_default_timezone_set('America/Toronto');
  62. * do NOT try to use
  63. $myVar = date_default_timezone_get();
  64. as a test, it will throw an error.
  65. We have also included more example files to show the use of "sendmail", "mail()",
  66. "smtp", and "gmail".
  67. We are also looking for more programmers to join the volunteer development team.
  68. If you have an interest in this, please let us know.
  69. Enjoy!
  70. Version 2.1.0beta1 & beta2
  71. please note, this is BETA software
  72. ** DO NOT USE THIS IN PRODUCTION OR LIVE PROJECTS
  73. INTENDED STRICTLY FOR TESTING
  74. ** NOTE:
  75. As of November 2007, PHPMailer has a new project team headed by industry
  76. veteran Andy Prevost (codeworxtech). The first release in more than two
  77. years will focus on fixes, adding ease-of-use enhancements, provide
  78. basic compatibility with PHP4 and PHP5 using PHP5 backwards compatibility
  79. features. A new release is planned before year-end 2007 that will provide
  80. full compatiblity with PHP4 and PHP5, as well as more bug fixes.
  81. We are looking for project developers to assist in restoring PHPMailer to
  82. its leadership position. Our goals are to simplify use of PHPMailer, provide
  83. good documentation and examples, and retain backward compatibility to level
  84. 1.7.3 standards.
  85. If you are interested in helping out, visit http://sourceforge.net/projects/phpmailer
  86. and indicate your interest.
  87. **
  88. http://phpmailer.sourceforge.net/
  89. This software is licenced under the LGPL. Please read LICENSE for information on the
  90. software availability and distribution.
  91. Class Features:
  92. - Send emails with multiple TOs, CCs, BCCs and REPLY-TOs
  93. - Redundant SMTP servers
  94. - Multipart/alternative emails for mail clients that do not read HTML email
  95. - Support for 8bit, base64, binary, and quoted-printable encoding
  96. - Uses the same methods as the very popular AspEmail active server (COM) component
  97. - SMTP authentication
  98. - Native language support
  99. - Word wrap, and more!
  100. Why you might need it:
  101. Many PHP developers utilize email in their code. The only PHP function
  102. that supports this is the mail() function. However, it does not expose
  103. any of the popular features that many email clients use nowadays like
  104. HTML-based emails and attachments. There are two proprietary
  105. development tools out there that have all the functionality built into
  106. easy to use classes: AspEmail(tm) and AspMail. Both of these
  107. programs are COM components only available on Windows. They are also a
  108. little pricey for smaller projects.
  109. Since I do Linux development I�ve missed these tools for my PHP coding.
  110. So I built a version myself that implements the same methods (object
  111. calls) that the Windows-based components do. It is open source and the
  112. LGPL license allows you to place the class in your proprietary PHP
  113. projects.
  114. Installation:
  115. Copy class.phpmailer.php into your php.ini include_path. If you are
  116. using the SMTP mailer then place class.smtp.php in your path as well.
  117. In the language directory you will find several files like
  118. phpmailer.lang-en.php. If you look right before the .php extension
  119. that there are two letters. These represent the language type of the
  120. translation file. For instance "en" is the English file and "br" is
  121. the Portuguese file. Chose the file that best fits with your language
  122. and place it in the PHP include path. If your language is English
  123. then you have nothing more to do. If it is a different language then
  124. you must point PHPMailer to the correct translation. To do this, call
  125. the PHPMailer SetLanguage method like so:
  126. // To load the Portuguese version
  127. $mail->SetLanguage("br", "/optional/path/to/language/directory/");
  128. That's it. You should now be ready to use PHPMailer!
  129. A Simple Example:
  130. <?php
  131. require("class.phpmailer.php");
  132. $mail = new PHPMailer();
  133. $mail->IsSMTP(); // set mailer to use SMTP
  134. $mail->Host = "smtp1.example.com;smtp2.example.com"; // specify main and backup server
  135. $mail->SMTPAuth = true; // turn on SMTP authentication
  136. $mail->Username = "jswan"; // SMTP username
  137. $mail->Password = "secret"; // SMTP password
  138. $mail->From = "from@example.com";
  139. $mail->FromName = "Mailer";
  140. $mail->AddAddress("josh@example.net", "Josh Adams");
  141. $mail->AddAddress("ellen@example.com"); // name is optional
  142. $mail->AddReplyTo("info@example.com", "Information");
  143. $mail->WordWrap = 50; // set word wrap to 50 characters
  144. $mail->AddAttachment("/var/tmp/file.tar.gz"); // add attachments
  145. $mail->AddAttachment("/tmp/image.jpg", "new.jpg"); // optional name
  146. $mail->IsHTML(true); // set email format to HTML
  147. $mail->Subject = "Here is the subject";
  148. $mail->Body = "This is the HTML message body <b>in bold!</b>";
  149. $mail->AltBody = "This is the body in plain text for non-HTML mail clients";
  150. if(!$mail->Send())
  151. {
  152. echo "Message could not be sent. <p>";
  153. echo "Mailer Error: " . $mail->ErrorInfo;
  154. exit;
  155. }
  156. echo "Message has been sent";
  157. ?>
  158. CHANGELOG
  159. See ChangeLog.txt
  160. Download: http://sourceforge.net/project/showfiles.php?group_id=26031
  161. Andy Prevost