- /*
- * this happens in the folowing situations :
- * 1: unquoted personal name
- * 2: emailaddress without < and >
- * 3: unquoted personal name from compose that should be encoded.
- * if it's a personal name then an emailaddress should follow
- * the personal name may not have ',' inside it
- * If it's a emailaddress then the personal name is not set.
- * we should look for the delimiter ',' or a SPACE
- */
- /* check for emailaddress */
- $i_space = strpos($address,' ',$pos);
- $i_del = strpos($address,',',$pos);
- if ($i_space || $i_del) {
- if ($i_del) {
- $address_part = substr($address,$pos,$i_del-$pos);
- } else {
- $address_part = substr($address,$pos);
- }
- if ($i = strpos($address_part,'@')) {
- /* an email address is following */
- if (($i+$pos) < $i_space) {
- $addr_start = $pos;
- if ($i_space < $i_del && $i_del) {
- if ($i_space) {
- $addr = substr($address,$pos,$i_space-$pos);
- $pos = $i_space;
- } else {
- $addr = substr($address,$pos);
- $pos = $j;
- }
- } else {
- if ($i_del) {
- $addr = substr($address,$pos,$i_del-$pos);
- $pos = $i_del;
- } else if ($i_space) {
- $addr = substr($address,$pos,$i_space-$pos);
- $pos = $i_space+1;
- } else {
- $addr = substr($address,$pos);
- $pos = $j;
- }
- }
- } else {
- if ($i_space) {
- $name .= substr($address,$pos,$i_space-$pos) . ' ';
- $addr_start = $i_space+1;
- $pos = $i_space+1;
- } else {
- $addr = substr($address,$pos,$i_del-$pos);
- $addr_start = $pos;
- if ($i_del) {
- $pos = $i_del;
- } else {
- $pos = $j;
- }
- }
- }
- } else {
- /* email address without domain name, could be an alias */
- $addr_start = $pos;
- $addr = $address_part;
- $pos = strlen($address_part) + $pos;
- }