2017-11-17 12 views
0

次の関数を使用して、cscartでhtmlメールを送信しています。私は$値を印刷する場合cscartでメールhtmlを返すには?

$value = fn_send_mail($user_data['email'], Registry::get('settings.Company.company_users_department'), 'addons/test/test_subj.tpl', 'addons/test/test_body.tpl'); 

はそれだけを返すことを意味します。どのように私はこの関数でHTMLを返すのですか?

+1

バージョンは、使用します:

function custom_send_mail($to, $from, $subj, $body, $attachments = array(), $lang_code = CART_LANGUAGE, $reply_to = '', $is_html = true) { fn_disable_translation_mode(); $__from = array(); $__to = array(); fn_init_mailer(); $mailer = & Registry::get('mailer'); $languages = Registry::get('languages'); Registry::get('view_mail')->setLanguage($lang_code); fn_set_hook('send_mail_pre', $mailer, $to, $from, $subj, $body, $attachments, $lang_code, $reply_to, $is_html); if (!empty($reply_to)) { $mailer->ClearReplyTos(); $reply_to = fn_format_emails($reply_to); foreach ($reply_to as $rep_to) { $mailer->AddReplyTo($rep_to); } } if (!is_array($from)) { $__from['email'] = $from; } else { $__from = $from; } if (empty($__from['email'])) { $__from['email'] = Registry::get('settings.Company.company_site_administrator'); } if (empty($__from['name'])) { $__from['name'] = Registry::get('settings.Company.company_name'); } $mailer->SetFrom($__from['email'], $__from['name']); $mailer->IsHTML($is_html); $mailer->CharSet = CHARSET; $mailer->Subject = Registry::get('view_mail')->display($subj, false); $mailer->Subject = trim($mailer->Subject); $body = Registry::get('view_mail')->display($body, false); $mailer->Body = fn_attach_images($body, $mailer); if (!empty($attachments)) { foreach ($attachments as $name => $file) { $mailer->AddAttachment($file, $name); } } $__to = fn_format_emails($to); foreach ($__to as $v) { $mailer->ClearAddresses(); $mailer->AddAddress($v, ''); $result = $mailer->Send(); if (!$result) { fn_set_notification('E', fn_get_lang_var('error'), fn_get_lang_var('error_message_not_sent') . ' ' . $mailer->ErrorInfo); } fn_set_hook('send_mail', $mailer); } return $body; } 

オプション2 あなたのアドオンを経由してsend_mail_preフックに接続することができますか? 4.xから 'fn_send_mail'関数が' Mailer :: class'に置き換えられました。 – ISTI

+0

私は** CS-CART:バージョン2.2.1 PROFESSIONALを使用しています。** – Vignesh

答えて

0

私はそれを見つけました:)

表示するには/ retrun HTMLテンプレートは、この次のコードを使用してください。

$body = Registry::get('view_mail')->display($body, false); 
print_r($body); 
+0

あなたは正しいですが、私の詳細な回答。 – ISTI

0

あなたは2つのオプションがあります:あなたは体を返し、あなたのアドオンでこれを使用するメールの差出人関数を作成

オプション1 を。たとえば:CS-カートの

function fn_youraddonname_send_mail_pre($mailer, $to, $from, $subj, $body, $attachments, $lang_code, $reply_to, $is_html) { 
    $rendered_body = Registry::get('view_mail')->display($body, false); 
    // use your custom code, to do anything you want 
    // this code will run everytime CS-Cart use the fn_send_mail function 
}