2017-03-28 17 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(); 
} 
関連する問題