foreach expects array or object as a first argument, so you might want
to initialize bcc as an empty array to avoid this warning

On Apr 3, 2:43 pm, "Liebermann, Anja Carolin"
<anja.lieberm...@alltours.de> wrote:
> Note to self: All that lines are not necessary. What works is:
>
> <?php
> class ErinnerungShell extends Shell {
>         /**
>          * List of tasks for this shell
>          *
>          * @var array
>          */
>         var $tasks = array('Email');
>         var $uses = array('Vertrag');
>
>         var $Email;
>
>         function main()
>         {
>                 ....some code...
>         $this->emailversenden($vertrag);
>         }
>
>         function emailversenden($vertrag)
>         {
>                 $user = ....;
>                 $responsibleperson = ....;
>                 $responsiblepersonname = ....;
>                 $responsiblepersonemail = ....;
>                 $username= ....;
>                 $useremail= ....;
>
>                 //it looks like somehow set with compact doesn't really work 
> here
>                 $this->Email->set('user',$user);
>                 $this->Email->set('vertrag',$vertrag);
>                 $this->Email->set('responsibleperson',$responsibleperson);
>                 $this->Email->set('somemoretext',$somemoretext);
>
>                 $this->Email->settings(array(
>             'from' => 'my...@mydomain.de',
>             'template' => 'simple_message2', //this is my email layout under 
> elements
>             'to' => $responsiblepersonname.' <'.$responsiblepersonemail.'>',
>             'cc' => $username.' <'.$useremail.'>',
>             'subject' => 'Erinnerung: Vertrag kündigen 
> '.$vertrag['Lieferant']['name'],
>                 'sendAs'    => 'html'
>                 ));
>
>                 $this->Email->send();
>         }}
>
> ?>
>
> This sends me nicely formatted emails from console, although I get an 
> annoying warning :
> PHP Warning:  Invalid argument supplied for foreach() in 
> /usr/share/cake/libs/controller/components/email.php on line 457
>
> Line 457 is:
>
>         if (!empty($this->bcc) && $this->delivery != 'smtp') {
>                 $this->__header[] = 'Bcc: ' .implode(', ', 
> array_map(array($this, '__formatAddress'), $this->bcc));
>         }
> Well... Bcc is clearly empty in my setup so im am wondering where this error 
> comes from.
>
> Any hints are appreciated
>
> Anja
>
> -----Ursprüngliche Nachricht-----
> Von: cake-php@googlegroups.com [mailto:cake-...@googlegroups.com] Im Auftrag 
> von Liebermann, Anja Carolin
> Gesendet: Freitag, 3. April 2009 12:16
> An: cake-php@googlegroups.com
> Betreff: AW: Sending emails in console scripts
>
> Hi,
>
> I am just running into the same problem. Have you found a solution yet?
> I want to send an email via a shell script and have trouble passing teh body 
> to the Email component when using the mail functions from the example shell 
> script "my". I will now try your solution.
>
> Anja
>
> -----Ursprüngliche Nachricht-----
> Von: cake-php@googlegroups.com [mailto:cake-...@googlegroups.com] Im Auftrag 
> von goncalo.marr...@gmail.com
> Gesendet: Mittwoch, 21. Januar 2009 13:20
> An: CakePHP
> Betreff: Sending emails in console scripts
>
> Hi.
>
> I'm writing a console shell that needs to send emails. I want to use the 
> EmailComponent but the only way i've managed to get it to work is to manually 
> create an instance of AppController an pass it to a manually created instance 
> of EmailComponent.
>
> My code:
>
> App::import('Core', 'Controller');
> App::import('Controller', 'AppController'); $AppController = new 
> AppController(); $AppController->constructClasses();
>
> App::import('Component', 'Email');
> $Email = new EmailComponent();
> $Email->initialize($AppController);
> $Email->startup($AppController);
>
> Is there a simpler/more elegant way of achieving this? Shouldn't Shell have a 
> $components variable the same way it has a $uses variable?
>
> Thanks in advance.
>
> Gonçalo Marrafa
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"CakePHP" group.
To post to this group, send email to cake-php@googlegroups.com
To unsubscribe from this group, send email to 
cake-php+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/cake-php?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to