简体   繁体   English

使用sendgrid将文件附加到电子邮件

[英]Attach file to email using sendgrid

I'm using sendgrid mailer, and I'm fail to attach csv file to mail function. 我正在使用sendgrid邮件程序,并且无法将csv文件附加到邮件功能。 Below is code for composing mail... 下面是编写邮件的代码...

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

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

Need to download this file in sender mail... 需要通过发件人邮件下载此文件...

  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);
}

Anyone please help 有人请帮忙

This code working perfectly... 该代码可以正常工作...

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();
}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM