@@ -1071,66 +1071,71 @@ function is_image($filename) {
1071
1071
*/
1072
1072
function oos_mail ($ to_name , $ to_email_address , $ email_subject , $ email_text , $ from_email_name , $ from_email_address ) {
1073
1073
1074
+ global $ phpmailer ;
1074
1075
1075
1076
if (preg_match ('~[\r\n]~ ' , $ to_name )) return FALSE ;
1076
1077
if (preg_match ('~[\r\n]~ ' , $ to_email_address )) return FALSE ;
1077
1078
if (preg_match ('~[\r\n]~ ' , $ email_subject )) return FALSE ;
1078
1079
if (preg_match ('~[\r\n]~ ' , $ from_email_name )) return FALSE ;
1079
1080
if (preg_match ('~[\r\n]~ ' , $ from_email_address )) return FALSE ;
1080
1081
1081
- $ sLang = (isset ($ _SESSION ['iso_639_1 ' ]) ? $ _SESSION ['iso_639_1 ' ] : 'en ' );
1082
1082
1083
- // Instantiate a new mail object
1084
- // (Re)create it, if it's gone missing
1085
- if ( !is_object ( $ mail ) || !is_a ( $ mail , 'PHPMailer ' ) ) {
1086
- require_once MYOOS_INCLUDE_PATH . '/includes/lib/phpmailer/class.phpmailer.php ' ;
1087
- require_once MYOOS_INCLUDE_PATH . '/includes/lib/phpmailer/class.smtp.php ' ;
1088
- // Instantiate a new mail object
1089
- $ mail = new PHPMailer ( TRUE );
1083
+ // (Re)create it, if it's gone missing.
1084
+ if ( ! ( $ phpmailer instanceof PHPMailer \PHPMailer \PHPMailer ) ) {
1085
+ require_once MYOOS_INCLUDE_PATH . '/includes/lib/PHPMailer/PHPMailer.php ' ;
1086
+ require_once MYOOS_INCLUDE_PATH . '/includes/lib/PHPMailer/SMTP.php ' ;
1087
+ require_once MYOOS_INCLUDE_PATH . '/includes/lib/PHPMailer/Exception.php ' ;
1088
+ $ phpmailer = new PHPMailer \PHPMailer \PHPMailer ( true );
1089
+
1090
+ $ phpmailer ::$ validator = static function ( $ to_email_address ) {
1091
+ return (bool ) is_email ( $ to_email_address );
1092
+ };
1090
1093
}
1091
1094
1092
- $ mail ->PluginDir = OOS_ABSOLUTE_PATH . 'includes/lib/phpmailer/ ' ;
1093
- $ mail ->SetLanguage ( $ sLang , OOS_ABSOLUTE_PATH . 'includes/lib/phpmailer/language/ ' );
1095
+ // Empty out the values that may be set.
1096
+ $ phpmailer ->clearAllRecipients ();
1097
+ $ phpmailer ->clearAttachments ();
1098
+ $ phpmailer ->clearCustomHeaders ();
1099
+ $ phpmailer ->clearReplyTos ();
1094
1100
1095
- $ mail ->CharSet = CHARSET ;
1096
- $ mail ->IsMail ();
1101
+ $ phpmailer ->IsMail ();
1097
1102
1098
- $ mail ->From = $ from_email_address ? $ from_email_address : STORE_OWNER_EMAIL_ADDRESS ;
1099
- $ mail ->FromName = $ from_email_name ? $ from_email_name : STORE_OWNER ;
1100
- $ mail ->Mailer = EMAIL_TRANSPORT ;
1103
+ $ phpmailer ->From = $ from_email_address ? $ from_email_address : STORE_OWNER_EMAIL_ADDRESS ;
1104
+ $ phpmailer ->FromName = $ from_email_name ? $ from_email_name : STORE_OWNER ;
1105
+ $ phpmailer ->Mailer = EMAIL_TRANSPORT ;
1101
1106
1102
1107
// Add smtp values if needed
1103
1108
if ( EMAIL_TRANSPORT == 'smtp ' ) {
1104
- $ mail ->IsSMTP (); // set mailer to use SMTP
1105
- $ mail ->SMTPAuth = OOS_SMTPAUTH ; // turn on SMTP authentication
1106
- $ mail ->Username = OOS_SMTPUSER ; // SMTP username
1107
- $ mail ->Password = OOS_SMTPPASS ; // SMTP password
1108
- $ mail ->Host = OOS_SMTPHOST ; // specify main and backup server
1109
+ $ phpmailer ->IsSMTP (); // set mailer to use SMTP
1110
+ $ phpmailer ->SMTPAuth = OOS_SMTPAUTH ; // turn on SMTP authentication
1111
+ $ phpmailer ->Username = OOS_SMTPUSER ; // SMTP username
1112
+ $ phpmailer ->Password = OOS_SMTPPASS ; // SMTP password
1113
+ $ phpmailer ->Host = OOS_SMTPHOST ; // specify main and backup server
1109
1114
} else {
1110
1115
// Set sendmail path
1111
1116
if ( EMAIL_TRANSPORT == 'sendmail ' ) {
1112
1117
if (!oos_empty (OOS_SENDMAIL )) {
1113
- $ mail ->Sendmail = OOS_SENDMAIL ;
1114
- $ mail ->IsSendmail ();
1118
+ $ phpmailer ->Sendmail = OOS_SENDMAIL ;
1119
+ $ phpmailer ->IsSendmail ();
1115
1120
}
1116
1121
}
1117
1122
}
1118
1123
1119
- $ mail ->AddAddress ($ to_email_address , $ to_name );
1120
- $ mail ->Subject = $ email_subject ;
1124
+ $ phpmailer ->AddAddress ($ to_email_address , $ to_name );
1125
+ $ phpmailer ->Subject = $ email_subject ;
1121
1126
1122
1127
1123
1128
// Build the text version
1124
1129
$ text = strip_tags ($ email_text );
1125
1130
if (EMAIL_USE_HTML == 'true ' ) {
1126
- $ mail ->IsHTML (TRUE );
1127
- $ mail ->Body = $ email_text ;
1128
- $ mail ->AltBody = $ text ;
1131
+ $ phpmailer ->IsHTML (TRUE );
1132
+ $ phpmailer ->Body = $ email_text ;
1133
+ $ phpmailer ->AltBody = $ text ;
1129
1134
} else {
1130
- $ mail ->Body = $ text ;
1135
+ $ phpmailer ->Body = $ text ;
1131
1136
}
1132
1137
1133
1138
// Send message
1134
- $ mail ->Send ();
1139
+ $ phpmailer ->Send ();
1135
1140
}
1136
1141
0 commit comments