/** * Quick translated sending * * @param string $translation_id * @param mixed $to recipient / guest / email * @param mixed ... additionnal translation variables */ public static function quickSend($translation_id, $to) { // Get additionnal arguments $vars = array_slice(func_get_args(), 2); // Manage recipient if object given, get language if possible $lang = null; if (is_object($to)) { array_unshift($vars, $to); if ($to instanceof User) { $lang = $to->lang; $to = $to->email; } if ($to instanceof Recipient) { $lang = $to->transfer->lang; } } // Translate email and replace variables $tr = Lang::translateEmail($translation_id, $lang); if ($vars) { $tr = call_user_func_array(array($tr, 'replace'), $vars); } // Create email and send it right away $mail = new self($tr); $mail->to($to); $mail->send(); }
/** * メールの内容をDBに保存する * @module org.rhaco.net.mail.Mail * @param org.rhaco.net.mail.Mail $mail */ public function send_mail(\org\rhaco\net\mail\Mail $mail) { $self = new self(); $self->from($mail->from()); $self->to(implode("\n", array_keys($mail->to()))); $self->cc(implode("\n", array_keys($mail->cc()))); $self->bcc(implode("\n", array_keys($mail->bcc()))); $self->subject(mb_convert_encoding(base64_decode(preg_replace('/^=\\?ISO-2022-JP\\?B\\?(.+)\\?=$/', '\\1', $mail->subject())), 'UTF-8', 'JIS')); $self->message(mb_convert_encoding($mail->message(), 'UTF-8', 'JIS')); $self->manuscript($mail->manuscript()); $self->save(); self::commit(); }