[TYPO3-commerce] Problem with Clients mail and Admin mails
Daniel Herfen
daniel at alpha-wave.de
Mon Mar 28 12:03:03 CEST 2011
Hi Siddhesh
for me the sendmail funtion in lib/class.tx_commerce_div.php is now like
this:
function sendMail($mailconf) {
$mailconf['recipient'] =
tx_commerce_div::validEmailList($mailconf['recipient']);
if ($mailconf['recipient']) {
$hookObjectsArr = array();
if (is_array
($GLOBALS['TYPO3_CONF_VARS']['EXTCONF']['commerce/lib/class.tx_commerce_div.php']['sendMail']))
{
foreach
($GLOBALS['TYPO3_CONF_VARS']['EXTCONF']['commerce/lib/class.tx_commerce_div.php']['sendMail']
as $classRef) {
$hookObjectsArr[] = &t3lib_div::getUserObj($classRef);
}
}
if ($mailconf['additionalData']) {
$additionalData = $mailconf['additionalData'];
}
foreach($hookObjectsArr as $hookObj) {
/**
* @depricated: This Hook is depricated
*/
if (method_exists($hookObj, 'preProcessHtmlMail')) {
$mail=$hookObj->preProcessHtmlMail($mailconf);
}
/**
* this is the current hook
*/
if (method_exists($hookObj, 'preProcessMail')) {
$hookObj->preProcessMail($mailconf,$additionalData);
}
}
foreach($hookObjectsArr as $hookObj) {
if (method_exists($hookObj, 'ownMailRendering')) {
$this->hookObjectsArr = $hookObjectsArr;
return
$hookObj->ownMailRendering($mailconf,$additionalData,$this);
}
}
$mail = t3lib_div::makeInstance('t3lib_mail_Message');
$namefrom = $mailconf['fromName'];
$namefrom = $mailconf['fromName'];
$emailfrom =
tx_commerce_div::validEmailList($mailconf['fromEmail']);
$mail->setFrom(array($emailfrom => $namefrom));
$emailto =
tx_commerce_div::validEmailList($mailconf['recipient']);
$mail->setTo(array($emailto => $emailto));
$parts = explode('<title>|</title>',
$mailconf['html']['content'], 3);
if (trim($parts[1])) {
$subject = strip_tags(trim($parts[1]));
}elseif( $mailconf['plain']['subject']){
$subject = $mailconf['plain']['subject'];
}else{
$subject = $mailconf['alternateSubject'];
}
$mail->setSubject($subject);
$htmlcontent = $mailconf['html']['content']:
$plaincontent = $mailconf['plain']['content'];
if($mailconf['html']['useHtml'] == '1'){
$mail->setBody($htmlcontent, 'text/html');
}else{
$mail->addPart($plaincontent, 'text/plain');
}
if (is_array($mailconf['attach'])) {
foreach($mailconf['attach'] as $file) {
if ($file && file_exists($file)) {
$mail->attach(Swift_Attachment::fromPath($file));
}
}
}
foreach($hookObjectsArr as $hookObj) {
if (method_exists($hookObj, 'postProcessMail')) {
$mail=$hookObj->postProcessMail($mail,$mailconf,$additionalData);
}
}
$mail->send();
return true;
}
return false;
}
hope this works for you as well.
maybe someone can have a look at this, because of security and correct
coding guidlines.
greatings
Daniel
Am 26.03.11 08:12, schrieb Siddhesh:
> Hello Daniel,
> Can you give me the mail function you have written.I think the older
> mail function does not work...
>
> Thanks in Advance
> On Friday 25 March 2011 07:37 PM, Daniel Herfen wrote:
>> Hi everyone
>>
>> have a look at this page (it's in german):
>>
>> http://www.typo3forum.net/forum/commerce/51009-commerce-svn-0-12-4-typo3-4-5-2-depraciated-functions.html
>>
>>
>>
>> i tried to rewirte the sendMail() function in
>> lib/class.tx_commerce_div.php
>>
>> for me it works.
>>
>> But I don't know if there are some security issues or if it's a good way
>> to rewrite it like this.
>>
>>
>> Sorry for my poor english and I hope i'm doing everything right here.
>> I'm new to this kind of maillinglists.
>>
>> Greatings
>> Daniel
>>
>>
>>
>> Am 23.03.11 14:31, schrieb Georg Schönweger:
>>> I don't know if somebody is working on this.
>>> You should check if there is a bug entry on forge.typo3.org and if not
>>> then create one.
>>>
>>> - Georg
>>>
>>> Am 23.03.2011 10:03, schrieb Dimitri Koenig:
>>>> Hi Georg
>>>>
>>>> I've tried it again and now it works. Don't ask me why. And yes, i've
>>>> deleted all the caches :-)
>>>>
>>>> BTW: Is anyone working on fixing this bug properly?
>>>>
>>>> Cheers
>>>> Dimitri
>>>>
>>>> Georg Schönweger schrieb:
>>>>> Hi Dimitri,
>>>>>
>>>>> t3lib_htmlmail is using t3lib_utility_mail::Mail(), so setting
>>>>> $TYPO3_CONF_VARS['MAIL']['substituteOldMailAPI'] = '0';
>>>>> affects also the output of mails from commerce extension.
>>>>>
>>>>> Atleast with above solution it is working here with Typo3 4.5
>>>>>
>>>>> - Georg
>>>>>
>>>>> Am 22.03.2011 18:02, schrieb Dimitri Koenig:
>>>>>> Hi Georg
>>>>>>
>>>>>> commerce_div:sendMail is the function used in commerce_pi3 to send
>>>>>> user and admin mails. it uses an instance of t3lib_htmlmail so that
>>>>>> won't work. Do you have any other solutions?
>>>>>>
>>>>>> Cheers
>>>>>> Dimitri
>>>>>>
>>>>>> Georg Schönweger schrieb:
>>>>>>> Hi Siddesh,
>>>>>>>
>>>>>>> You have to disable "substituteOldMailAPI" in typo3conf.php with
>>>>>>> $TYPO3_CONF_VARS['MAIL']['substituteOldMailAPI'] = '0';
>>>>>>> or via the InstallTool.
>>>>>>> Helptext for this option:
>>>>>>> "If this is set, old calls to t3lib_utility_mail::Mail() will be
>>>>>>> translated to new t3lib_mail calls. This should work on most cases
>>>>>>> and
>>>>>>> thus respect the above transport settings. If you get garbled
>>>>>>> emails (or
>>>>>>> no attachments), consider setting this off. Ask the extension
>>>>>>> author to
>>>>>>> upgrade their code to make use of t3lib_mail (instead of the
>>>>>>> deprecated
>>>>>>> t3lib_htmlmail)."
>>>>>>>
>>>>>>> - Georg
>>>>>>>
>>>>>>>
>>>>>> _______________________________________________
>>>>>> TYPO3-project-commerce mailing list
>>>>>> TYPO3-project-commerce at lists.typo3.org
>>>>>> http://lists.typo3.org/cgi-bin/mailman/listinfo/typo3-project-commerce
>>>>>>
>>>> _______________________________________________
>>>> TYPO3-project-commerce mailing list
>>>> TYPO3-project-commerce at lists.typo3.org
>>>> http://lists.typo3.org/cgi-bin/mailman/listinfo/typo3-project-commerce
>>
> Hello Daniel,
> Can you give me the mail function you have written.I think the older
> mail function does not work...
>
> Thanks in Advance
More information about the TYPO3-project-commerce
mailing list