Public Member Functions | |
find_MIDfromReturnPath ($to) | |
Returns special TYPO3 Message ID (MID) from input TO header (the return address of the sent mail from Dmailer. | |
find_XTypo3MID ($content) | |
Returns special TYPO3 Message ID (MID) from input mail content (used by Dmailer, return mails). | |
getMessage ($mailParts) | |
Returns the text content of a mail which has previously been parsed by eg. | |
getTextContent ($content) | |
Returns the body part of a raw mail message (including headers) Probably obsolete since the function fullParse() is more advanced and safer to use. | |
getMailBoundaryParts ($boundary, $content) | |
Splits the body of a mail into parts based on the boundary string given. | |
getCType ($str) | |
Returns Content Type plus more. | |
analyseReturnError ($c) | |
Analyses the return-mail content for the Dmailer module - used to find what reason there was for rejecting the mail Used by the Dmailer, but not exclusively. | |
decodeHeaderString ($str) | |
Decodes a header-string with the =?....?= syntax including base64/quoted-printable encoding. | |
extractNameEmail ($str) | |
Extracts name/email parts from a header field (like 'To:' or 'From:' with name/email mixed up. | |
Public Attributes | |
$dateAbbrevs | |
$serverGMToffsetMinutes = 60 |
|
Analyses the return-mail content for the Dmailer module - used to find what reason there was for rejecting the mail Used by the Dmailer, but not exclusively.
Definition at line 271 of file class.t3lib_readmail.php. References header(), and message(). 00271 { 00272 $cp=array(); 00273 if (strstr($c,'--- Below this line is a copy of the message.')) { // QMAIL 00274 list($c)=explode('--- Below this line is a copy of the message.',$c); // Splits by the QMAIL divider 00275 $cp['content']=trim($c); 00276 $parts = explode('>:',$c,2); 00277 $cp['reason_text']=trim($parts[1]); 00278 $cp['mailserver']='Qmail'; 00279 if (eregi('550|no mailbox|account does not exist',$cp['reason_text'])) { 00280 $cp['reason']=550; // 550 Invalid recipient 00281 } elseif (stristr($cp['reason_text'],'couldn\'t find any host named')) { 00282 $cp['reason']=2; // Bad host 00283 } elseif (eregi('Error in Header|invalid Message-ID header',$cp['reason_text'])) { 00284 $cp['reason']=554; 00285 } else { 00286 $cp['reason']=-1; 00287 } 00288 } elseif (strstr($c,'The Postfix program')) { // Postfix 00289 $cp['content']=trim($c); 00290 $parts = explode('>:',$c,2); 00291 $cp['reason_text']=trim($parts[1]); 00292 $cp['mailserver']='Postfix'; 00293 if (stristr($cp['reason_text'],'550')) { 00294 $cp['reason']=550; // 550 Invalid recipient, User unknown 00295 } elseif (stristr($cp['reason_text'],'553')) { 00296 $cp['reason']=553; // No such user 00297 } elseif (stristr($cp['reason_text'],'551')) { 00298 $cp['reason']=551; // Mailbox full 00299 } else { 00300 $cp['reason']=-1; 00301 } 00302 } else { // No-named: 00303 $cp['content']=trim($c); 00304 $cp['reason_text']=trim(substr($c,0,1000)); 00305 $cp['mailserver']='unknown'; 00306 if (eregi('Unknown Recipient|Delivery failed 550|Receiver not found|User not listed|recipient problem|Delivery to the following recipients failed|User unknown|recipient name is not recognized',$cp['reason_text'])) { 00307 $cp['reason']=550; // 550 Invalid recipient, User unknown 00308 } elseif (eregi('over quota|mailbox full',$cp['reason_text'])) { 00309 $cp['reason']=551; 00310 } elseif (eregi('Error in Header',$cp['reason_text'])) { 00311 $cp['reason']=554; 00312 } else { 00313 $cp['reason']=-1; 00314 } 00315 } 00316 00317 return $cp; 00318 }
|
|
Decodes a header-string with the =?....?= syntax including base64/quoted-printable encoding.
Definition at line 326 of file class.t3lib_readmail.php. 00326 { 00327 $parts = explode('=?',$str,2); 00328 if (count($parts)==2) { 00329 list($charset,$encType,$encContent)=explode('?',$parts[1],3); 00330 $subparts =explode('?=',$encContent,2); 00331 $encContent=$subparts[0]; 00332 00333 switch(strtolower($encType)) { 00334 case 'q': 00335 $encContent = quoted_printable_decode($encContent); 00336 $encContent = str_replace('_',' ',$encContent); 00337 break; 00338 case 'b': 00339 $encContent=base64_decode($encContent); 00340 break; 00341 } 00342 00343 $parts[1]=$encContent.$this->decodeHeaderString($subparts[1]); // Calls decodeHeaderString recursively for any subsequent encoded section. 00344 } 00345 return implode('',$parts); 00346 }
|
|
Extracts name/email parts from a header field (like 'To:' or 'From:' with name/email mixed up.
Definition at line 354 of file class.t3lib_readmail.php. |
|
Returns special TYPO3 Message ID (MID) from input TO header (the return address of the sent mail from Dmailer. Used by Dmailer, return mails)
Definition at line 122 of file class.t3lib_readmail.php. References $out. 00122 { 00123 $parts = explode('mid',strtolower($to)); 00124 $moreParts=explode('_',$parts[1]); 00125 $out=array( 00126 'mid' => $moreParts[0], 00127 'rtbl' => substr($moreParts[1],0,1), 00128 'rid' => intval(substr($moreParts[1],1)) 00129 ); 00130 if ($out['rtbl']=='p') $out['rtbl']='P'; 00131 00132 return($out); 00133 }
|
|
Returns special TYPO3 Message ID (MID) from input mail content (used by Dmailer, return mails).
Definition at line 142 of file class.t3lib_readmail.php. References $out. 00142 { 00143 if (strstr($content,'X-Typo3MID:')) { 00144 $p=explode('X-Typo3MID:',$content,2); 00145 $l=explode(chr(10),$p[1],2); 00146 list($mid,$hash)=t3lib_div::trimExplode('-',$l[0]); 00147 if (md5($mid)==$hash) { 00148 $moreParts=explode('_',substr($mid,3)); 00149 $out=array( 00150 'mid' => $moreParts[0], 00151 'rtbl' => substr($moreParts[1],0,1), 00152 'rid' => substr($moreParts[1],1) 00153 ); 00154 return($out); 00155 } 00156 } 00157 }
|
|
Returns Content Type plus more. Obsolete, use fullParse()
Definition at line 248 of file class.t3lib_readmail.php. Referenced by getMessage(). 00248 { 00249 $parts = explode(';',$str); 00250 $cTypes=array(); 00251 $cTypes['ContentType']=$parts[0]; 00252 next($parts); 00253 while(list(,$ppstr)=each($parts)) { 00254 $mparts = explode('=',$ppstr,2); 00255 if (count($mparts)>1) { 00256 $cTypes[strtolower(trim($mparts[0]))]=ereg_replace('^"','',trim(ereg_replace('"$','',trim($mparts[1])))); 00257 } else { 00258 $cTypes[]=$ppstr; 00259 } 00260 } 00261 return $cTypes; 00262 }
|
|
Splits the body of a mail into parts based on the boundary string given. Obsolete, use fullParse()
Definition at line 228 of file class.t3lib_readmail.php. Referenced by getMessage(). 00228 { 00229 $mParts = explode('--'.$boundary,$content); 00230 unset($mParts[0]); 00231 reset($mParts); 00232 $new=array(); 00233 while(list(,$val)=each($mParts)) { 00234 if (trim($val)=='--') break; 00235 $new[] = ltrim($val); 00236 } 00237 return $new; 00238 }
|
|
Returns the text content of a mail which has previously been parsed by eg. extractMailHeader() Probably obsolete since the function fullParse() is more advanced and safer to use.
Definition at line 188 of file class.t3lib_readmail.php. References getCType(), getMailBoundaryParts(), and getTextContent(). 00188 { 00189 if ($mailParts['content-type']) { 00190 $CType = $this->getCType($mailParts['content-type']); 00191 if ($CType['boundary']) { 00192 $parts = $this->getMailBoundaryParts($CType['boundary'],$mailParts['CONTENT']); 00193 $c=$this->getTextContent($parts[0]); 00194 } else { 00195 $c=$this->getTextContent( 00196 'Content-Type: '.$mailParts['content-type'].' 00197 '.$mailParts['CONTENT'] 00198 ); 00199 } 00200 } else { 00201 $c = $mailParts['CONTENT']; 00202 } 00203 return $c; 00204 }
|
|
Returns the body part of a raw mail message (including headers) Probably obsolete since the function fullParse() is more advanced and safer to use.
Definition at line 213 of file class.t3lib_readmail.php. Referenced by getMessage(). 00213 { 00214 $p=$this->extractMailHeader($content); 00215 // Here some decoding might be needed... 00216 // However we just return what is believed to be the proper notification: 00217 return $p['CONTENT']; 00218 }
|
|
Initial value: array( 'JAN' => 1, 'FEB' => 2, 'MAR' => 3, 'APR' => 4, 'MAY' => 5, 'JUN' => 6, 'JUL' => 7, 'AUG' => 8, 'SEP' => 9, 'OCT' => 10, 'NOV' => 11, 'DEC' => 12 ) Definition at line 88 of file class.t3lib_readmail.php. |
|
Definition at line 102 of file class.t3lib_readmail.php. |