2017-03-28 1 views
0

sendgrid 메일러를 사용하고 있으며 메일 기능에 CSV 파일을 첨부하지 못했습니다. 다음은 메일 작성을위한 코드입니다. ...sendgrid를 사용하여 이메일에 파일 첨부

$ resumeName = $ _FILES [ 'resume'] [ 'name'];

$ resumePath = $ _FILES [ 'resume'] [ 'tmp_name'];

public static function sendMailwithAttachment($mail_type, $mail_variable = array(), $subject, $from, $to, $resumeName, $resumePath) { 

    $CI = & get_instance(); 

    if ($mail_type !== NULL) { 
     $CI->db->select('tpl'); 
     $CI->db->from('tblMailTypes'); 
     $CI->db->where('id', $mail_type); 
     $query = $CI->db->get(); 

     $mailIdres = $query->result_array(); 
     if (!empty($mailIdres)) { 
      $message = $mailIdres[0]['tpl']; 
      if (!empty($mail_variable)) { 
       foreach ($mail_variable as $key => $val) { 
        $message = str_ireplace($key, $val, $message); // select message format from table 
       } 
      } 
     } 
    } 

    $from = new SendGrid\Email(null, $from); 

    $to = new SendGrid\Email(null, $to); 

    $content = new SendGrid\Content("text/html", $message); 
    exit(); 



    $mail = new SendGrid\Mail($from, $subject, $to, $content); 

    $apiKey = 'ABCD..................HHHHFFFRRDSE'; // Sendgrid API key 
    $sg = new \SendGrid($apiKey); 

    addAttachment($resumePath, $resumeName); 


    $response = $sg->client->mail()->send()->post($mail); 
} 

사람이 완벽하게 작동

답변

0

이 코드를 도와주세요 보낸 메일에서이 파일을 다운로드

필요 ... ...

public static function sendEMailwithAttachment($mail_type, $mail_variable = array(), $subject, $from, $mailto,$username, $fileName, $filePath){ 

     // If you are using Composer (recommended) 
require 'vendor/autoload.php'; 

// If you are not using Composer 
// require("path/to/sendgrid-php/sendgrid-php.php"); 

    $CI = & get_instance(); 

    if ($mail_type !== NULL) { 
     $CI->db->select('tpl'); 
     $CI->db->from('tblMailTypes'); 
     $CI->db->where('id', $mail_type); 
     $query = $CI->db->get(); 

     $mailIdres = $query->result_array(); 
     if (!empty($mailIdres)) { 
      $message = $mailIdres[0]['tpl']; 
      if (!empty($mail_variable)) { 
       foreach ($mail_variable as $key => $val) { 
        $message = str_ireplace($key, $val, $message); 
       } 
      } 
     } 
    } 

$from = new SendGrid\Email("User", $from); 

$to = new SendGrid\Email($username,$mailto); 
$content = new SendGrid\Content("text/html", $message); 
$file = $filePath; 
$file_encoded = base64_encode(file_get_contents($file)); 
$attachment = new SendGrid\Attachment(); 
$attachment->setContent($file_encoded); 
$attachment->setType("application/text"); 
$attachment->setDisposition("attachment"); 
$attachment->setFilename($fileName); 

$mail = new SendGrid\Mail($from, $subject, $to, $content); 
$mail->addAttachment($attachment); 

$apiKey = 'ABCD..................HHHHFFFRRDSE'; // Sendgrid API key 

$sg = new \SendGrid($apiKey); 

$response = $sg->client->mail()->send()->post($mail); 



// If you want response 

//echo $response->statusCode(); 
//echo $response->headers(); 
//echo $response->body(); 
} 
관련 문제