Just following up with some more information...

Here is what the full mail object looks like. I assume that the  
received message's header is just not formated properly, or is it a  
problem with eZ?.

I figured that if I get the FROM in the message with

$from = formatAddress( $mail->from );
if ($from == "") $from = formatAddress( $mail->returnPath );

but how can I get the TO: value? I see it in [Delivered-To]  but I'm  
not sure how to access it.

Mail object output below:

Thanks,

Dave


ezcMail Object
(
     [properties:private] => Array
         (
             [from] =>
             [to] => Array
                 (
                 )

             [cc] => Array
                 (
                 )

             [bcc] => Array
                 (
                 )

             [subject] =>
             [subjectCharset] => us-ascii
             [body] => ezcMailText Object
                 (
                     [properties:private] => Array
                         (
                             [text] => Hey this is my test
                             [charset] => utf-8
                             [encoding] => 8bit
                             [subType] => plain
                             [origipersonCharset] => us-ascii
                         )

                     [headers:private] => ezcMailHeadersHolder Object
                         (
                             [lookup:private] => Array
                                 (
                                     [content-type] => Content-Type
                                 )

                             [map:private] => Array
                                 (
                                     [Content-Type] =>
                                 )

                         )

                     [excludeHeaders:private] => Array
                         (
                         )

                     [properties:private] => Array
                         (
                             [size] => 4
                         )

                 )

             [messageId] =>  
<[EMAIL PROTECTED]>
             [returnPath] => ezcMailAddress Object
                 (
                     [name] =>
                     [email] => [EMAIL PROTECTED]
                     [charset] => utf-8
                 )

         )

     [headers:private] => ezcMailHeadersHolder Object
         (
             [lookup:private] => Array
                 (
                     [return-path] => Return-Path
                     [delivered-to] => Delivered-To
                     [received] => Received
                     [received-spf] => Received-SPF
                     [message-id] => Message-Id
                     [date] => Date
                 )

             [map:private] => Array
                 (
                     [Return-Path] =>  
<[EMAIL PROTECTED]>
                     [Delivered-To] => [EMAIL PROTECTED]
                     [Received] => from messaging.sprintpcs.com  
(lxnsmssf5-vip.nmcc.sprintspectrum.com [10.1.1.1]) by  
mx.messaging.sprintpcs.com (Postfix) with SMTP id 8C269F83E2 for ;  
Mon, 17 Sep 2007 21:32:35 -0500 (CDT)From: 
[EMAIL PROTECTED]:[EMAIL PROTECTED]:X- 
OPWV-Extra-Message-Type:MO
                     [Received-SPF] => none (myDomain.com: domain at  
messaging.sprintpcs.com does not designate permitted sender hosts)
                     [Message-Id] =>  
<[EMAIL PROTECTED]>
                     [Date] => Mon, 17 Sep 2007 21:32:35 -0500 (CDT)
                 )

         )

     [excludeHeaders:private] => Array
         (
         )

     [properties:private] => Array
         (
             [size] => 1120
         )

)


On Sep 18, 2007, at 12:04 PM, Dave Fischetti wrote:

> Actually. I just realized that it's not the body that is killing my  
> script for these SprintPCS messages, its the TO & FROM. For some  
> reason, they have no value.... even if I echo the full $mail->from  
> it shows as blank.
>
> This is for any sprintPCS message such as the one below. Does  
> anyone see any reason why that would happen.
>
> Any help is appreciated...
>
> On Sep 17, 2007, at 3:21 PM, Dave Fischetti wrote:
>
>> Hey Everyone...
>>
>> Quick Question, I am parsing only the plain text part of the email  
>> (ignoring everything else). But I noticed that with some senders  
>> (specifically SprintPCS in the US)  no PART is defined in the  
>> email. For example this is the source of an email I received:
>>
>> ////// ////// ////// ////// START -- EMAIL RAW  
>> SOURCE ////// ////// ////// //////
>> Return-Path: <[EMAIL PROTECTED]>
>> Delivered-To: [EMAIL PROTECTED]
>> Received: (qmail 15735 invoked from network); 14 Sep 2007 19:43:21  
>> -0400
>> Received: from smtp1.mo.bulk.sprintpcs.com (HELO  
>> mx.messaging.sprintpcs.com) (10.1.1.1)
>>   by mydomain.com with SMTP; 14 Sep 2007 19:43:21 -0400
>> Received-SPF: none (mydomain.com: domain at  
>> messaging.sprintpcs.com does not designate permitted sender hosts)
>> Received: from messaging.sprintpcs.com (lxnsmssf5- 
>> vip.nmcc.sprintspectrum.com [10.1.1.1])
>>      by mx.messaging.sprintpcs.com (Postfix) with SMTP id DDEC3F83CC
>>      for <[EMAIL PROTECTED]>; Fri, 14 Sep 2007 18:40:49 -0500 (CDT)
>> From:[EMAIL PROTECTED]
>> To:[EMAIL PROTECTED]
>> Subject:
>> X-OPWV-Extra-Message-Type:MO
>> Message-Id: <[EMAIL PROTECTED]>
>> Date: Fri, 14 Sep 2007 18:40:49 -0500 (CDT)
>>
>> Some message here
>> ////// ////// ////// ////// END -- EMAIL RAW  
>> SOURCE ////// ////// ////// //////
>>
>>
>> So using the following is ignoring the email all together. I would  
>> like the body of the message above.
>>
>> if ( get_class( $part ) === 'ezcMailText' && $part->subType ===  
>> 'plain' )
>>
>> What would I do in a case like this?
>>
>> Thanks,
>>
>> Fish
>> ><>
>>
>>
>> On Jul 24, 2007, at 11:54 AM, Alexandru Stanoi wrote:
>>
>>> Dave Fischetti wrote:
>>>>> Date: Tue, 24 Jul 2007 11:11:15 +0200
>>>>> From: Frederik Holljen <[EMAIL PROTECTED]>
>>>>> Subject: Re: [Components] Only Parsing text/plain part of message
>>>>> To: [email protected]
>>>>> Message-ID: <[EMAIL PROTECTED]>
>>>>> Content-Type: text/plain;  charset="iso-8859-1"
>>>>>
>>>>> On Tuesday 24 July 2007 02:02, Dave Fischetti wrote:
>>>>>> Hmm. I guess I'm a bit confused.
>>>>>>
>>>>>> As a test, I am trying to just display the text/plain part of the
>>>>>> message only. But my real goal is save that info into a database.
>>>>>>
>>>>>> I've tried manipulating the example in the link mentioned  
>>>>>> below to
>>>>>> try and just display that part of the message. For some  
>>>>>> messages it
>>>>>> works, but for others is showing still the HTML and plain text
>>>>>> versions. So I assume I'm parsing it wrong. I was hoping you  
>>>>>> might be
>>>>>> able to shed some light on the proper way to do that.
>>>>>>
>>>>>> Thanks for the response.
>>>>> I think you need to provide some code in order for us to see  
>>>>> what  you're doing
>>>>> wrong. There is not a real "proper" way to do that as it  
>>>>> depends on  what your
>>>>> application is trying to do.
>>>>>
>>>>> Cheers,
>>>>> Frederik
>>>>>
>>>> Yes, I agree thats probably the best next step. Here is what  
>>>> I"m  working on:
>>>> I just feel that because I don't fully understand the process  
>>>> EZc  goes through to gather these parts... I could probably be  
>>>> doing this  more efficiently. All I really need is the plain/ 
>>>> text part. (and  later down the road I may have to see if there  
>>>> are any file  attachments.)
>>>> Thanks for taking a look a this.
>>>
>>> Hi Dave,
>>>
>>> To get the text/plain part of mails is easy:
>>>
>>> <code>
>>> $pop3 = new ezcMailPop3Transport( "mail.mydomain.com" );
>>> $pop3->authenticate( "[EMAIL PROTECTED]", "mypass" );
>>>
>>> $set = $pop3->fetchAll();
>>> $parser = new ezcMailParser();
>>> $mails = $parser->parseMail( $set );
>>>
>>> foreach ( $mails as $mail )
>>> {
>>>     $parts = $mail->fetchParts();
>>>     foreach ( $parts as $part )
>>>     {
>>>         if ( get_class( $part ) === 'ezcMailText' )
>>>         {
>>>             echo $part->text;
>>>         }
>>>     }
>>> }
>>> </code>
>>>
>>> This code will go through all the parts of all the mails and only  
>>> display the text part of each.
>>>
>>> Some messages have more text parts (for example one text part and  
>>> one html part), which are all seen as ezcMailText objects. To  
>>> differentiate between text and html parts you can analyze $part- 
>>> >subType. Html text parts have 'html' in $part->subType, and  
>>> plain text parts have 'plain'. The code will look like this:
>>>
>>> <code>
>>> // ...
>>>         if ( get_class( $part ) === 'ezcMailText' && $part- 
>>> >subType === 'plain' )
>>>         {
>>>             echo $part->text;
>>>         }
>>> </code>
>>>
>>> To see if the mail has attachments, in the same loop you can  
>>> check for ezcMailFile objects:
>>>
>>> <code>
>>> foreach ( $mails as $mail )
>>> {
>>>     $parts = $mail->fetchParts();
>>>     foreach ( $parts as $part )
>>>     {
>>>         if ( get_class( $part ) === 'ezcMailText' )
>>>         {
>>>             echo $part->text;
>>>         }
>>>
>>>     if ( get_class( $part ) === 'ezcMailFile' )
>>>     {
>>>         echo "Attachment: " . $part->fileName;
>>>     }
>>>     }
>>> }
>>> </code>
>>>
>>> Hope this helps.
>>>
>>> Cheers,
>>> Alex.
>>>
>>> -- 
>>> Alexandru Stanoi
>>> eZ Components System Developer
>>> eZ Systems | http://ez.no
>>
>

-- 
Components mailing list
[email protected]
http://lists.ez.no/mailman/listinfo/components

Reply via email to