<?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' => 'myapp@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-php@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-php@googlegroups.com] Im Auftrag von goncalo.marrafa@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+unsubscribe@googlegroups.com
For more options, visit this group at http://groups.google.com/group/cake-php?hl=en
-~----------~----~----~----~------~----~------~--~---
No comments:
Post a Comment