Отправить письмо с вложением, используя URL-адрес в Codeigniter - PullRequest
0 голосов
/ 25 июня 2019

Я хотел бы отправить электронное письмо с приложением.

У меня нет проблем с отправкой электронного письма с использованием пути к файлу, но я предпочитаю устанавливать свое вложение с помощью URL.

Электронная почта может быть успешно отправлена ​​на мою электронную почту без каких-либо вложений.

Пример URL моего PDF: http://store/index.php/Store/GI/OrderID.pdf

Надеюсь, что некоторые могут мне помочь. Очень ценю. Спасибо.

Controller ::

    public function SendInvoice(){
        $orderid = $this->uri->segment(3);
        $result = $this->order->GetCustOrder($orderid);

        unset($data);
        $data = array(
                        $OrderID,
                        $result[0]->cust_id,
                        $result[0]->cust_name,
                        $result[0]->cust_email
                      );
        $this->store_email->SendInvoiceToCust($data); //library

        $this->session->set_flashdata('sent_email','Email has been sent to customer.');
        redirect('Store/Index');
    }   

библиотека ::

    public function SendInvoiceToCust($data){
        $message = "Dear Valued Customer, <br><br>Thank you for Purchased at Store. <br/><br/>Kindly refer the attachment to view your Invoice.";
        //$attached_file = base_url(). 'index.php/Store/GI/' .$data[0]. '.pdf';
        $form = base_url(). 'index.php/Store/GI/' .$data[0]. '.pdf';
        $attachment = chunk_split(base64_encode($form));

        $separator = md5(time());

        $message .= "--" . $separator . PHP_EOL;
        $message .= "Content-Type: application/octet-stream; name=\"\" . $data[0]. '.pdf'\"" . PHP_EOL;
        $message .= "Content-Transfer-Encoding: base64" . PHP_EOL;
        $message .= "Content-Disposition: attachment" . PHP_EOL . PHP_EOL;
        $message .= $attachment . PHP_EOL . PHP_EOL;
        $message .= "--" . $separator . "--";           

        $this->email->from('email@gmail.com', 'Store');
        $this->email->to('email2@gmail.com'); 

        $this->email->subject('Store INVOICE [Do not reply]');
        $this->email->message($message);
        $this->email->attach($attachment);
        $this->email->send();


    }

1 Ответ

0 голосов
/ 25 июня 2019

Я пока не могу комментировать, но вы должны попробовать установить тип содержимого и кодировать pdf. Ниже приведено то, что я сейчас использую для отправки электронного письма с приложением в codeigniter. Я обновил ответ. В настоящее время я принимаю PDF-форму и прилагаю ее. Все это делается в поле $ message с различными типами передачи контента и типами.

    $sender = "email@gmail.com";
    $emails = "email2@gmail.com";
    $subject = "Store INVOICE [Do not reply]";
    $headers = "From: " . $sender . PHP_EOL;
    $headers .= "MIME-Version: 1.0" . PHP_EOL;
    $message = "";

    $message = "--" . $separator . PHP_EOL;
    $message .= "Content-Type: text/html; charset=\"iso-8859-1\"" . PHP_EOL;
    $message .= "Content-Transfer-Encoding: 8bit" . PHP_EOL . PHP_EOL;
    $message .= ($content = "Dear Valued Customer, <br><br>Thank you for Purchased at Store. <br/><br/>Kindly refer the attachment to view your Invoice.");
    $message .= PHP_EOL . PHP_EOL;

    $form = base_url(). 'index.php/Store/GI/' .$data[0]. '.pdf';
    $attachment = chunk_split(base64_encode($form));

    $separator = md5(time());

    $headers .= "Content-Type: multipart/mixed; boundary=\"" . $separator . "\"" . PHP_EOL;
    $headers .= "Content-Transfer-Encoding: 7bit";

    $message .= "--" . $separator . PHP_EOL;
    $message .= "Content-Type: application/octet-stream; name=\"" . $data[0]. '.pdf'\"" . PHP_EOL;
    $message .= "Content-Transfer-Encoding: base64" . PHP_EOL;
    $message .= "Content-Disposition: attachment" . PHP_EOL . PHP_EOL;
    $message .= $attachment . PHP_EOL . PHP_EOL;
    $message .= "--" . $separator . "--";

    $result = mail($emails, $subject, $message, $headers);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...