Please help me with a Zend_Mail debugger class!

Usage:

<?

    require("classes/class.Zend_Mail_Debugger.php");

    $mail=new Zend_Mail();
   
    $mail->addTo("nisse@sweden.net");
    $mail->setFrom("me@hotletter.com");
    $mail->setSubject("testing testing");
    $mail->setBodyHtml('
                       
        Hej! Jag är ett brev på svenska!<br>
        <br>
        (I\'m a swedish letter)<br>
        <br>
        Regards<br>
        <a href="http://www.nisses.se">Nisses.se</a>
                       
    ');
   
   
    Zend_Mail_Debugger::DumpToScreen($mail);
   
   
?>


Problem: How to make the mail readable on screen?
(see picture)

<?php
 
class Zend_Mail_Debugger{
 
 
    static function DumpToScreen(Zend_Mail $zfMail){
        
        echo "<table class='zf_mail_debug' border='1'>";
        
            echo "<tr>";
 
                echo "<th>";
                    echo "To:";
                echo "</th>";
                
                echo "<td>";
                    foreach($zfMail->getRecipients() as $r){
                        echo "$r"."; ";
                    }
                echo "</td>";
                
            echo "</tr>";
 
            echo "<tr>";
                echo "<th>";
                    echo "From:";
                echo "</th>";
                
                echo "<td>";
                    echo $zfMail->getFrom();
                echo "</td>";
            echo "</tr>";
 
            echo "<tr>";
                echo "<th>";
                    echo "Subject:";
                echo "</th>";
                                
                echo "<td>";
                    echo $zfMail->getSubject();
                echo "</td>";
            echo "</tr>";    
 
            echo "<tr>";
                echo "<th>";
                    echo "Text:";
                echo "</th>";
                                
                echo "<td>";
                    if($zfMail->getBodyHtml()){
                        echo  $zfMail->getBodyHtml(true);
                    }
                    else{
                        echo $zfMail->getBodyText();
                    }
                echo "</td>";
            echo "<tr>";                
                                                                
        
        echo "</table>";
        
        
        
    }
    
}
 
?>

Open in new window

output.png
LVL 4
davidsperlingAsked:
Who is Participating?

Improve company productivity with a Business Account.Sign Up

x
 
RoonaanConnect With a Mentor Commented:
When you are extending the class, you could just as well use a variable, but then put it as a property of your custom object, and just write a getter;

class HT_Mail_Walk_Match_To_Proposer_Swe extends Zend_Mail{
 
        private $_customBodyText = '';
                        
        function __construct($toEmail,$toUsrName,$fromEmail,$mateAnonName,$dateTime,$link,$linkCapt){
 
                //SOLUTION:
                parent::__construct(); //set default encoding etc (iso 8859)
                
                $this->setSubject("Hej på dig!");
                $this->addTo($toEmail,$toUsrName);
                $this->setFrom($fromEmail);
 
                
                $d=new dsDate($dateTime,"swe");
                 
                $weekday=$d->getWeekDayString();
                $monthDay=$d->getCustomFormat("j");
                $month=$d->getCustomFormat("F");
                $time=$d->getTimeString_1();
                
                $this->_customBodyText = '<body>
            Hej '.$toUsrName.'!<br/>
            
            '.$mateAnonName.' secret... åla öl etc  '.$weekday.' '.$monthDay.'  '.$month.' kl. '.$time.'!<br/>
            
            
            Vänligen gå in på <a href="'.$link.'">'.$linkCapt.'</a> och tacka Ja eller Nej!<br/>
            
            
            Hälsningar<br/>
            '.$linkCapt.'<br/>
            
            </body>';
 
 
            $this->setBodyHtml($this->_customBodyText);
                
                
                
        }
        
        function getMyBodyText() {
          return $this->_customBodyText;
        }
    
    
}

Open in new window

0
 
RoonaanCommented:
What is the sense of making it readable to screen? If you want to debug the body text, than store your mail in a variable, then use setBodyText($variable):

<?php

    require("classes/class.Zend_Mail_Debugger.php");

    $mail=new Zend_Mail();
   
    $bodyHTML = '
                       
        Hej! Jag är ett brev på svenska!<br>
        <br>
        (I\'m a swedish letter)<br>
        <br>
        Regards<br>
        <a href="http://www.nisses.se">Nisses.se</a>
                       
    ';

    $mail->addTo("nisse@sweden.net");
    $mail->setFrom("me@hotletter.com");
    $mail->setSubject("testing testing");
    $mail->setBodyHtml($bodyHTML);
   
   
    echo '<blockquote>'.$bodyHTML.'</blockquote>';
?>
0
 
davidsperlingAuthor Commented:
The reason is that i'm using Zend_Mail like this :-)

One class for each kind of mail, that is.


http://www.experts-exchange.com/Web_Development/Web_Languages-Standards/PHP/PHP_Frameworks/Q_24275092.html
0
Free Tool: IP Lookup

Get more info about an IP address or domain name, such as organization, abuse contacts and geolocation.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

 
davidsperlingAuthor Commented:
Sweet, but then I can't dump just any Zend_Mail object to screen, can I?

There must be a way to decrypt those cryptig writings?
(se pic)
0
 
RoonaanCommented:
You could do a forced download of a .eml file, but not sure what your browser thinks about that..
0
 
davidsperlingAuthor Commented:
So there's no function like html_entities_decode() for this kind of encoding?

=0D=0A =0D=0A Hello!...

What's this encoding called anyway
0
 
davidsperlingAuthor Commented:
The solution could maybe be found in Zend_Mime component...

(framework.zend.com)
0
 
davidsperlingAuthor Commented:
Possible solution
Zend_Mime component

(framework.zend.com)

 
Haven't had the time to test. Thank's for the workarounds!
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.