1
|
ChangeLog
|
2
|
|
3
|
NOTE: THIS VERSION OF PHPMAILER IS DESIGNED FOR PHP5/PHP6.
|
4
|
IT WILL NOT WORK WITH PHP4.
|
5
|
|
6
|
Version 5.2 (July 19, 2011)
|
7
|
* protected MIME body and header
|
8
|
* better DKIM DNS Resource Record support
|
9
|
* better aly handling
|
10
|
* htmlfilter class added to extras
|
11
|
* moved to Apache Extras
|
12
|
|
13
|
Version 5.1 (October 20, 2009)
|
14
|
* fixed filename issue with AddStringAttachment (thanks to Tony)
|
15
|
* fixed "SingleTo" property, now works with Senmail, Qmail, and SMTP in
|
16
|
addition to PHP mail()
|
17
|
* added DKIM digital signing functionality
|
18
|
New properties:
|
19
|
- DKIM_domain (sets the domain name)
|
20
|
- DKIM_private (holds DKIM private key)
|
21
|
- DKIM_passphrase (holds your DKIM passphrase)
|
22
|
- DKIM_selector (holds the DKIM "selector")
|
23
|
- DKIM_identity (holds the identifying email address)
|
24
|
* added callback function support
|
25
|
- callback function parameters include:
|
26
|
result, to, cc, bcc, subject and body
|
27
|
* see the test/test_callback.php file for usage.
|
28
|
* added "auto" identity functionality
|
29
|
- can automatically add:
|
30
|
- Return-path (if Sender not set)
|
31
|
- Reply-To (if ReplyTo not set)
|
32
|
- can be disabled:
|
33
|
- $mail->SetFrom('yourname@yourdomain.com','First Last',false);
|
34
|
- or by adding the $mail->Sender and/or $mail->ReplyTo properties
|
35
|
Note: "auto" identity added to help with emails ending up in spam
|
36
|
or junk boxes because of missing headers
|
37
|
|
38
|
Version 5.0.2 (May 24, 2009)
|
39
|
* Fix for missing attachments when inline graphics are present
|
40
|
* Fix for missing Cc in header when using SMTP (mail was sent,
|
41
|
but not displayed in header -- Cc receiver only saw email To:
|
42
|
line and no Cc line, but did get the email (To receiver
|
43
|
saw same)
|
44
|
|
45
|
Version 5.0.1 (April 05, 2009)
|
46
|
* Temporary fix for missing attachments
|
47
|
|
48
|
Version 5.0.0 (April 02, 2009)
|
49
|
|
50
|
* With the release of this version, we are initiating a new version numbering
|
51
|
system to differentiate from the PHP4 version of PHPMailer.
|
52
|
* Most notable in this release is fully object oriented code.
|
53
|
class.smtp.php:
|
54
|
* Refactored class.smtp.php to support new exception handling
|
55
|
code size reduced from 29.2 Kb to 25.6 Kb
|
56
|
* Removed unnecessary functions from class.smtp.php:
|
57
|
public function Expand($name) {
|
58
|
public function Help($keyword="") {
|
59
|
public function Noop() {
|
60
|
public function Send($from) {
|
61
|
public function SendOrMail($from) {
|
62
|
public function Verify($name) {
|
63
|
class.phpmailer.php:
|
64
|
* Refactored class.phpmailer.php with new exception handling
|
65
|
* Changed processing functionality of Sendmail and Qmail so they cannot be
|
66
|
inadvertently used
|
67
|
* removed getFile() function, just became a simple wrapper for
|
68
|
file_get_contents()
|
69
|
* added check for PHP version (will gracefully exit if not at least PHP 5.0)
|
70
|
class.phpmailer.php enhancements
|
71
|
* enhanced code to check if an attachment source is the same as an embedded or
|
72
|
inline graphic source to eliminate duplicate attachments
|
73
|
New /test_script
|
74
|
* We have written a test script you can use to test the script as part of your
|
75
|
installation. Once you press submit, the test script will send a multi-mime
|
76
|
email with either the message you type in or an HTML email with an inline
|
77
|
graphic. Two attachments are included in the email (one of the attachments
|
78
|
is also the inline graphic so you can see that only one copy of the graphic
|
79
|
is sent in the email). The test script will also display the functional
|
80
|
script that you can copy/paste to your editor to duplicate the functionality.
|
81
|
New examples
|
82
|
* All new examples in both basic and advanced modes. Advanced examples show
|
83
|
Exception handling.
|
84
|
PHPDocumentator (phpdocs) documentation for PHPMailer version 5.0.0
|
85
|
* all new documentation
|
86
|
|
87
|
Please note: the website has been updated to reflect the changes in PHPMailer
|
88
|
version 5.0.0. http://phpmailer.codeworxtech.com/
|
89
|
|
90
|
Version 2.3 (November 06, 2008)
|
91
|
|
92
|
* added Arabic language (many thanks to Bahjat Al Mostafa)
|
93
|
* removed English language from language files and made it a default within
|
94
|
class.phpmailer.php - if no language is found, it will default to use
|
95
|
the english language translation
|
96
|
* fixed public/private declarations
|
97
|
* corrected line 1728, $basedir to $directory
|
98
|
* added $sign_cert_file to avoid improper duplicate use of $sign_key_file
|
99
|
* corrected $this->Hello on line 612 to $this->Helo
|
100
|
* changed default of $LE to "\r\n" to comply with RFC 2822. Can be set by the user
|
101
|
if default is not acceptable
|
102
|
* removed trim() from return results in EncodeQP
|
103
|
* /test and three files it contained are removed from version 2.3
|
104
|
* fixed phpunit.php for compliance with PHP5
|
105
|
* changed $this->AltBody = $textMsg; to $this->AltBody = html_entity_decode($textMsg);
|
106
|
* We have removed the /phpdoc from the downloads. All documentation is now on
|
107
|
the http://phpmailer.codeworxtech.com website.
|
108
|
|
109
|
Version 2.2.1 () July 19 2008
|
110
|
|
111
|
* fixed line 1092 in class.smtp.php (my apologies, error on my part)
|
112
|
|
113
|
Version 2.2 () July 15 2008
|
114
|
|
115
|
* Fixed redirect issue (display of UTF-8 in thank you redirect)
|
116
|
* fixed error in getResponse function declaration (class.pop3.php)
|
117
|
* PHPMailer now PHP6 compliant
|
118
|
* fixed line 1092 in class.smtp.php (endless loop from missing = sign)
|
119
|
|
120
|
Version 2.1 (Wed, June 04 2008)
|
121
|
|
122
|
** NOTE: WE HAVE A NEW LANGUAGE VARIABLE FOR DIGITALLY SIGNED S/MIME EMAILS.
|
123
|
IF YOU CAN HELP WITH LANGUAGES OTHER THAN ENGLISH AND SPANISH, IT WOULD BE
|
124
|
APPRECIATED.
|
125
|
|
126
|
* added S/MIME functionality (ability to digitally sign emails)
|
127
|
BIG THANKS TO "sergiocambra" for posting this patch back in November 2007.
|
128
|
The "Signed Emails" functionality adds the Sign method to pass the private key
|
129
|
filename and the password to read it, and then email will be sent with
|
130
|
content-type multipart/signed and with the digital signature attached.
|
131
|
* fully compatible with E_STRICT error level
|
132
|
- Please note:
|
133
|
In about half the test environments this development version was subjected
|
134
|
to, an error was thrown for the date() functions used (line 1565 and 1569).
|
135
|
This is NOT a PHPMailer error, it is the result of an incorrectly configured
|
136
|
PHP5 installation. The fix is to modify your 'php.ini' file and include the
|
137
|
date.timezone = America/New York
|
138
|
directive, to your own server timezone
|
139
|
- If you do get this error, and are unable to access your php.ini file:
|
140
|
In your PHP script, add
|
141
|
date_default_timezone_set('America/Toronto');
|
142
|
- do not try to use
|
143
|
$myVar = date_default_timezone_get();
|
144
|
as a test, it will throw an error.
|
145
|
* added ability to define path (mainly for embedded images)
|
146
|
function MsgHTML($message,$basedir='') ... where:
|
147
|
$basedir is the fully qualified path
|
148
|
* fixed MsgHTML() function:
|
149
|
- Embedded Images where images are specified by <protocol>:// will not be altered or embedded
|
150
|
* fixed the return value of SMTP exit code ( pclose )
|
151
|
* addressed issue of multibyte characters in subject line and truncating
|
152
|
* added ability to have user specified Message ID
|
153
|
(default is still that PHPMailer create a unique Message ID)
|
154
|
* corrected unidentified message type to 'application/octet-stream'
|
155
|
* fixed chunk_split() multibyte issue (thanks to Colin Brown, et al).
|
156
|
* added check for added attachments
|
157
|
* enhanced conversion of HTML to text in MsgHTML (thanks to "brunny")
|
158
|
|
159
|
Version 2.1.0beta2 (Sun, Dec 02 2007)
|
160
|
* implemented updated EncodeQP (thanks to coolbru, aka Marcus Bointon)
|
161
|
* finished all testing, all known bugs corrected, enhancements tested
|
162
|
- note: will NOT work with PHP4.
|
163
|
|
164
|
please note, this is BETA software
|
165
|
** DO NOT USE THIS IN PRODUCTION OR LIVE PROJECTS
|
166
|
INTENDED STRICTLY FOR TESTING
|
167
|
|
168
|
Version 2.1.0beta1
|
169
|
please note, this is BETA software
|
170
|
** DO NOT USE THIS IN PRODUCTION OR LIVE PROJECTS
|
171
|
INTENDED STRICTLY FOR TESTING
|
172
|
|
173
|
Version 2.0.0 rc2 (Fri, Nov 16 2007), interim release
|
174
|
* implements new property to control VERP in class.smtp.php
|
175
|
example (requires instantiating class.smtp.php):
|
176
|
$mail->do_verp = true;
|
177
|
* POP-before-SMTP functionality included, thanks to Richard Davey
|
178
|
(see class.pop3.php & pop3_before_smtp_test.php for examples)
|
179
|
* included example showing how to use PHPMailer with GMAIL
|
180
|
* fixed the missing Cc in SendMail() and Mail()
|
181
|
|
182
|
******************
|
183
|
A note on sending bulk emails:
|
184
|
|
185
|
If the email you are sending is not personalized, consider using the
|
186
|
"undisclosed-recipient:;" strategy. That is, put all of your recipients
|
187
|
in the Bcc field and set the To field to "undisclosed-recipients:;".
|
188
|
It's a lot faster (only one send) and saves quite a bit on resources.
|
189
|
Contrary to some opinions, this will not get you listed in spam engines -
|
190
|
it's a legitimate way for you to send emails.
|
191
|
|
192
|
A partial example for use with PHPMailer:
|
193
|
|
194
|
$mail->AddAddress("undisclosed-recipients:;");
|
195
|
$mail->AddBCC("email1@anydomain.com,email2@anyotherdomain.com,email3@anyalternatedomain.com");
|
196
|
|
197
|
Many email service providers restrict the number of emails that can be sent
|
198
|
in any given time period. Often that is between 50 - 60 emails maximum
|
199
|
per hour or per send session.
|
200
|
|
201
|
If that's the case, then break up your Bcc lists into chunks that are one
|
202
|
less than your limit, and put a pause in your script.
|
203
|
*******************
|
204
|
|
205
|
Version 2.0.0 rc1 (Thu, Nov 08 2007), interim release
|
206
|
* dramatically simplified using inline graphics ... it's fully automated and requires no user input
|
207
|
* added automatic document type detection for attachments and pictures
|
208
|
* added MsgHTML() function to replace Body tag for HTML emails
|
209
|
* fixed the SendMail security issues (input validation vulnerability)
|
210
|
* enhanced the AddAddresses functionality so that the "Name" portion is used in the email address
|
211
|
* removed the need to use the AltBody method (set from the HTML, or default text used)
|
212
|
* set the PHP Mail() function as the default (still support SendMail, SMTP Mail)
|
213
|
* removed the need to set the IsHTML property (set automatically)
|
214
|
* added Estonian language file by Indrek Päri
|
215
|
* added header injection patch
|
216
|
* added "set" method to permit users to create their own pseudo-properties like 'X-Headers', etc.
|
217
|
example of use:
|
218
|
$mail->set('X-Priority', '3');
|
219
|
$mail->set('X-MSMail-Priority', 'Normal');
|
220
|
* fixed warning message in SMTP get_lines method
|
221
|
* added TLS/SSL SMTP support
|
222
|
example of use:
|
223
|
$mail = new PHPMailer();
|
224
|
$mail->Mailer = "smtp";
|
225
|
$mail->Host = "smtp.example.com";
|
226
|
$mail->SMTPSecure = "tls"; // option
|
227
|
//$mail->SMTPSecure = "ssl"; // option
|
228
|
...
|
229
|
$mail->Send();
|
230
|
* PHPMailer has been tested with PHP4 (4.4.7) and PHP5 (5.2.7)
|
231
|
* Works with PHP installed as a module or as CGI-PHP
|
232
|
- NOTE: will NOT work with PHP5 in E_STRICT error mode
|
233
|
|
234
|
Version 1.73 (Sun, Jun 10 2005)
|
235
|
* Fixed denial of service bug: http://www.cybsec.com/vuln/PHPMailer-DOS.pdf
|
236
|
* Now has a total of 20 translations
|
237
|
* Fixed alt attachments bug: http://tinyurl.com/98u9k
|
238
|
|
239
|
Version 1.72 (Wed, May 25 2004)
|
240
|
* Added Dutch, Swedish, Czech, Norwegian, and Turkish translations.
|
241
|
* Received: Removed this method because spam filter programs like
|
242
|
SpamAssassin reject this header.
|
243
|
* Fixed error count bug.
|
244
|
* SetLanguage default is now "language/".
|
245
|
* Fixed magic_quotes_runtime bug.
|
246
|
|
247
|
Version 1.71 (Tue, Jul 28 2003)
|
248
|
* Made several speed enhancements
|
249
|
* Added German and Italian translation files
|
250
|
* Fixed HELO/AUTH bugs on keep-alive connects
|
251
|
* Now provides an error message if language file does not load
|
252
|
* Fixed attachment EOL bug
|
253
|
* Updated some unclear documentation
|
254
|
* Added additional tests and improved others
|
255
|
|
256
|
Version 1.70 (Mon, Jun 20 2003)
|
257
|
* Added SMTP keep-alive support
|
258
|
* Added IsError method for error detection
|
259
|
* Added error message translation support (SetLanguage)
|
260
|
* Refactored many methods to increase library performance
|
261
|
* Hello now sends the newer EHLO message before HELO as per RFC 2821
|
262
|
* Removed the boundary class and replaced it with GetBoundary
|
263
|
* Removed queue support methods
|
264
|
* New $Hostname variable
|
265
|
* New Message-ID header
|
266
|
* Received header reformat
|
267
|
* Helo variable default changed to $Hostname
|
268
|
* Removed extra spaces in Content-Type definition (#667182)
|
269
|
* Return-Path should be set to Sender when set
|
270
|
* Adds Q or B encoding to headers when necessary
|
271
|
* quoted-encoding should now encode NULs \000
|
272
|
* Fixed encoding of body/AltBody (#553370)
|
273
|
* Adds "To: undisclosed-recipients:;" when all recipients are hidden (BCC)
|
274
|
* Multiple bug fixes
|
275
|
|
276
|
Version 1.65 (Fri, Aug 09 2002)
|
277
|
* Fixed non-visible attachment bug (#585097) for Outlook
|
278
|
* SMTP connections are now closed after each transaction
|
279
|
* Fixed SMTP::Expand return value
|
280
|
* Converted SMTP class documentation to phpDocumentor format
|
281
|
|
282
|
Version 1.62 (Wed, Jun 26 2002)
|
283
|
* Fixed multi-attach bug
|
284
|
* Set proper word wrapping
|
285
|
* Reduced memory use with attachments
|
286
|
* Added more debugging
|
287
|
* Changed documentation to phpDocumentor format
|
288
|
|
289
|
Version 1.60 (Sat, Mar 30 2002)
|
290
|
* Sendmail pipe and address patch (Christian Holtje)
|
291
|
* Added embedded image and read confirmation support (A. Ognio)
|
292
|
* Added unit tests
|
293
|
* Added SMTP timeout support (*nix only)
|
294
|
* Added possibly temporary PluginDir variable for SMTP class
|
295
|
* Added LE message line ending variable
|
296
|
* Refactored boundary and attachment code
|
297
|
* Eliminated SMTP class warnings
|
298
|
* Added SendToQueue method for future queuing support
|
299
|
|
300
|
Version 1.54 (Wed, Dec 19 2001)
|
301
|
* Add some queuing support code
|
302
|
* Fixed a pesky multi/alt bug
|
303
|
* Messages are no longer forced to have "To" addresses
|
304
|
|
305
|
Version 1.50 (Thu, Nov 08 2001)
|
306
|
* Fix extra lines when not using SMTP mailer
|
307
|
* Set WordWrap variable to int with a zero default
|
308
|
|
309
|
Version 1.47 (Tue, Oct 16 2001)
|
310
|
* Fixed Received header code format
|
311
|
* Fixed AltBody order error
|
312
|
* Fixed alternate port warning
|
313
|
|
314
|
Version 1.45 (Tue, Sep 25 2001)
|
315
|
* Added enhanced SMTP debug support
|
316
|
* Added support for multiple ports on SMTP
|
317
|
* Added Received header for tracing
|
318
|
* Fixed AddStringAttachment encoding
|
319
|
* Fixed possible header name quote bug
|
320
|
* Fixed wordwrap() trim bug
|
321
|
* Couple other small bug fixes
|
322
|
|
323
|
Version 1.41 (Wed, Aug 22 2001)
|
324
|
* Fixed AltBody bug w/o attachments
|
325
|
* Fixed rfc_date() for certain mail servers
|
326
|
|
327
|
Version 1.40 (Sun, Aug 12 2001)
|
328
|
* Added multipart/alternative support (AltBody)
|
329
|
* Documentation update
|
330
|
* Fixed bug in Mercury MTA
|
331
|
|
332
|
Version 1.29 (Fri, Aug 03 2001)
|
333
|
* Added AddStringAttachment() method
|
334
|
* Added SMTP authentication support
|
335
|
|
336
|
Version 1.28 (Mon, Jul 30 2001)
|
337
|
* Fixed a typo in SMTP class
|
338
|
* Fixed header issue with Imail (win32) SMTP server
|
339
|
* Made fopen() calls for attachments use "rb" to fix win32 error
|
340
|
|
341
|
Version 1.25 (Mon, Jul 02 2001)
|
342
|
* Added RFC 822 date fix (Patrice)
|
343
|
* Added improved error handling by adding a $ErrorInfo variable
|
344
|
* Removed MailerDebug variable (obsolete with new error handler)
|
345
|
|
346
|
Version 1.20 (Mon, Jun 25 2001)
|
347
|
* Added quoted-printable encoding (Patrice)
|
348
|
* Set Version as public and removed PrintVersion()
|
349
|
* Changed phpdoc to only display public variables and methods
|
350
|
|
351
|
Version 1.19 (Thu, Jun 21 2001)
|
352
|
* Fixed MS Mail header bug
|
353
|
* Added fix for Bcc problem with mail(). *Does not work on Win32*
|
354
|
(See PHP bug report: http://www.php.net/bugs.php?id=11616)
|
355
|
* mail() no longer passes a fifth parameter when not needed
|
356
|
|
357
|
Version 1.15 (Fri, Jun 15 2001)
|
358
|
[Note: these changes contributed by Patrice Fournier]
|
359
|
* Changed all remaining \n to \r\n
|
360
|
* Bcc: header no longer writen to message except
|
361
|
when sent directly to sendmail
|
362
|
* Added a small message to non-MIME compliant mail reader
|
363
|
* Added Sender variable to change the Sender email
|
364
|
used in -f for sendmail/mail and in 'MAIL FROM' for smtp mode
|
365
|
* Changed boundary setting to a place it will be set only once
|
366
|
* Removed transfer encoding for whole message when using multipart
|
367
|
* Message body now uses Encoding in multipart messages
|
368
|
* Can set encoding and type to attachments 7bit, 8bit
|
369
|
and binary attachment are sent as is, base64 are encoded
|
370
|
* Can set Encoding to base64 to send 8 bits body
|
371
|
through 7 bits servers
|
372
|
|
373
|
Version 1.10 (Tue, Jun 12 2001)
|
374
|
* Fixed win32 mail header bug (printed out headers in message body)
|
375
|
|
376
|
Version 1.09 (Fri, Jun 08 2001)
|
377
|
* Changed date header to work with Netscape mail programs
|
378
|
* Altered phpdoc documentation
|
379
|
|
380
|
Version 1.08 (Tue, Jun 05 2001)
|
381
|
* Added enhanced error-checking
|
382
|
* Added phpdoc documentation to source
|
383
|
|
384
|
Version 1.06 (Fri, Jun 01 2001)
|
385
|
* Added optional name for file attachments
|
386
|
|
387
|
Version 1.05 (Tue, May 29 2001)
|
388
|
* Code cleanup
|
389
|
* Eliminated sendmail header warning message
|
390
|
* Fixed possible SMTP error
|
391
|
|
392
|
Version 1.03 (Thu, May 24 2001)
|
393
|
* Fixed problem where qmail sends out duplicate messages
|
394
|
|
395
|
Version 1.02 (Wed, May 23 2001)
|
396
|
* Added multiple recipient and attachment Clear* methods
|
397
|
* Added Sendmail public variable
|
398
|
* Fixed problem with loading SMTP library multiple times
|
399
|
|
400
|
Version 0.98 (Tue, May 22 2001)
|
401
|
* Fixed problem with redundant mail hosts sending out multiple messages
|
402
|
* Added additional error handler code
|
403
|
* Added AddCustomHeader() function
|
404
|
* Added support for Microsoft mail client headers (affects priority)
|
405
|
* Fixed small bug with Mailer variable
|
406
|
* Added PrintVersion() function
|
407
|
|
408
|
Version 0.92 (Tue, May 15 2001)
|
409
|
* Changed file names to class.phpmailer.php and class.smtp.php to match
|
410
|
current PHP class trend.
|
411
|
* Fixed problem where body not being printed when a message is attached
|
412
|
* Several small bug fixes
|
413
|
|
414
|
Version 0.90 (Tue, April 17 2001)
|
415
|
* Intial public release
|