2017-12-05 23 views
1

"위의 전자 메일을 보내는 코드는 .iam입니다. 내 머리를 긁어 지긴했지만 여전히 이미지를 메일에서 볼 수 없습니다. 기본 64 인코딩 된 문자열로 이미지를 변환하고 있습니다. 나는 그것을 볼 수있는 https://sendgrid.com/docs/API_Reference/Web_API_v3/Mail/index.htmlsendgrid를 사용하여 이미지가있는 메일을 보내려면

에 보면 잘못된 여기가는 : "

var app = require("../../../server/server"); 
var base64Img = require("base64-img"); 

let status = null; 
let textBody, 
    htmBody = null; 
var DataSource = require("loopback-datasource-juggler").DataSource; 
var dsSendGrid = new DataSource("loopback-connector-sendgrid", { 
    api_key: app.customConfig.mail.sendgrid.api_key 
}); 

var fs = require("fs"); 

function base64_encode(file) { 
    var bitmap = fs.readFileSync(file); 
    return new Buffer(bitmap).toString("base64"); 
} 

function base64_decode(base64str, file) { 
    var bitmap = new Buffer(base64str, "base64"); 
    fs.writeFileSync(file, bitmap); 
    console.log(
    "******** File created from base64 encoded string ********", 
    base64str 
); 
} 

var base64str = base64_encode("../../../images/Campaign-images/Christmas.png"); 

let message = { 
    to: "[email protected]", 
    from: "[email protected]", 
    subject: "test", 
    text: "hi", 
    html: '<img src="cid:myimagecid"/>', 
    attachment: [ 
    { 
     filename: "Christmas2.png", 
     content: base64str, 
     ContentId: "myimagecid" 
    } 
    ] 
}; 
console.log(message); 
app.models.Email.send(message) 
    .then(result => { 
    return "sent"; 
    }) 
    .catch(err => { 
    console.log(err); 

    return "failed"; 
    }); 

답변

0

을 이미지 .I 몰라 켰를 보낼 여전히 수하지 sendgrid 구문은 첨부 하지 첨부입니다

는 또한 대신 콘텐츠 ID의이과 content_id되어

또한

확인, 당신이 올바른 버전 (나는 v3으로 지적하고 있지만, 난 당신이 V2를 사용하도록 선택할 수 있습니다 생각)

+0

감사합니다. 메시지 본문에 별도의 첨부 파일이 아닌 이미지를 보여주는 데 도움을 줄 수 있습니까? – rosh

+0

죄송합니다. 그렇게하지는 않았지만, 텍스트 대신 HTML로 보내고 img src를 사용해야한다는 것을 알고 있습니다. – libik

+0

나는 그것을 시도했다. 그러나 그것은 같은 결과를 줬다. – rosh

0

이 될 수 있습니다 사용하는 이유로 인해 메일 클라이언트입니다 기본 64 인코딩 이미지를 지원하지 않습니다.이 부분을 참조하십시오. question