Sendgrid-nodejs: Как ΠΌΠ½Π΅ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ влоТСния?

Π‘ΠΎΠ·Π΄Π°Π½Π½Ρ‹ΠΉ Π½Π° 6 сСнт. 2016  Β·  10ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ  Β·  Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ: sendgrid/sendgrid-nodejs

Наши элСктронныС письма ΠΎΡ‚ΠΏΡ€Π°Π²Π»ΡΡŽΡ‚ΡΡ Π½ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½ΠΎ, ΠΈ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΌΡ‹ Ρ…ΠΎΡ‚ΠΈΠΌ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π²Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅. Π˜Ρ‚Π°ΠΊ, ΠΌΡ‹ скопировали этот ΠΏΡ€ΠΈΠΌΠ΅Ρ€: https://github.com/sendgrid/sendgrid-nodejs/blob/93763a74a85969382d59fcb3708d22051498f998/examples/helpers/mail/example.js

И сдСлал Ρ‚Π°ΠΊΠΎΠΉ ΠΊΠΎΠ΄:

const sendgrid: any = require('sendgrid')(process.env.sendgrid_key);

sendEmail(data: IEmailData): void {
    const email: any = new sendgrid.Email();
    email.addTo(data.emailTo);
    for (let attachment in data.attachments)
      this.addAttachment(email, attachment);
    sendgrid.send(email, (error: any, json: string) => {
      if (error)
        console.log(error);
    });
  }

  addAttachment(email: any, attachmentData: any): void {
    const attachment = new sendgrid.Attachment();
    attachment.setContent(attachmentData.content);
    attachment.setType(attachmentData.type);
    attachment.setFilename(attachmentData.filename);
    attachment.setDisposition(attachmentData.disposition);
    email.addAttachment(attachment);
  }

Но ΠΏΡ€ΠΈ Π²Ρ‹Π·ΠΎΠ²Π΅ sendEmail Π½Π°ΠΌ ΡΠΎΠΎΠ±Ρ‰Π°ΡŽΡ‚ sendgrid.Attachment is not a function (пСрвая строка Π²Ρ‚ΠΎΡ€ΠΎΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ).

Π― распСчатал ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ sendgrid, ΠΈ ΠΎΠ½ выглядит Ρ‚Π°ΠΊ:

{ api_key: 'SG.DaV0L',
  api_user: null,
  options: 
   { uriParts: 
      { protocol: 'https',
        host: 'api.sendgrid.com',
        port: '',
        endpoint: '/api/mail.send.json' },
     uri: 'https://api.sendgrid.com/api/mail.send.json' },
  version: '1.9.2',
  Email: [Function: Email],
  smtpapi: [Function: smtpapi],
  send: [Function] }
  • Π­Ρ‚ΠΎ Π½Π΅Π²Π΅Ρ€Π½Ρ‹ΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€?
  • Π”ΠΎΠ»ΠΆΠ½Ρ‹ Π»ΠΈ ΠΌΡ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Π²ΡΠΏΠΎΠΌΠΎΠ³Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ класс присоСдинСния Π΄Ρ€ΡƒΠ³ΠΈΠΌ способом?

Бпасибо,
Π ΠΈΡ‡Π°Ρ€Π΄.

Π‘Π°ΠΌΡ‹ΠΉ ΠΏΠΎΠ»Π΅Π·Π½Ρ‹ΠΉ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ

Бсылка Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Π½Π΅ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚.
Π­Ρ‚ΠΎ новая ссылка:
https://github.com/sendgrid/sendgrid-nodejs/blob/master/use-cases/attachments.md

ВсС 10 ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ

Разобрался послС прочтСния ΠΊΠΎΠ΄Π°. Π­Ρ‚ΠΎΡ‚ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Π² github ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ Π½Π΅Π²Π΅Ρ€Π΅Π½. Π”ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ Ρ‚Π°ΠΊ:

addAttachment(email: any, attachmentData: any): void {    
  email.addFile(attachmentData);
}

Бпасибо @RichardJECooke ,

РазбСрСмся дальшС ΠΈ исправим Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅. Бпасибо, Ρ‡Ρ‚ΠΎ нашли врСмя ΠΏΠΎΠ΄Π΅Π»ΠΈΡ‚ΡŒΡΡ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ΠΌ!

Если Π²Ρ‹ Π½Π°ΠΏΠΈΡˆΠΈΡ‚Π΅ Π½Π°ΠΌ ΠΏΠΎ адрСсу [email protected], ΡƒΠΊΠ°Π·Π°Π² свой ΠΏΠΎΡ‡Ρ‚ΠΎΠ²Ρ‹ΠΉ адрСс ΠΈ Ρ€Π°Π·ΠΌΠ΅Ρ€ Ρ„ΡƒΡ‚Π±ΠΎΠ»ΠΊΠΈ, ΠΌΡ‹ Π±ΡƒΠ΄Π΅ΠΌ

Бпасибо!

Π’Π΅ΠΏΠ΅Ρ€ΡŒ Ρƒ нас Π΅ΡΡ‚ΡŒ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ влоТСния: https://github.com/sendgrid/sendgrid-nodejs/blob/master/USE_CASES.md#attachments

Бсылка Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Π½Π΅ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚.
Π­Ρ‚ΠΎ новая ссылка:
https://github.com/sendgrid/sendgrid-nodejs/blob/master/use-cases/attachments.md

ΠŸΡ€ΠΈΠ²Π΅Ρ‚, я знаю, Ρ‡Ρ‚ΠΎ эта ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° Π±Ρ‹Π»Π° Π·Π°ΠΊΡ€Ρ‹Ρ‚Π°, Π½ΠΎ это большС ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ°, с ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ я столкнулся ΠΏΡ€ΠΈ ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠ΅ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ встроСнныС изобраТСния ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ Gmail.

Π― нашСл нСсколько ΠΏΡ€ΠΈΡ‡ΠΈΠ½, ΠΏΠΎ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ Gmail Π½Π΅ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅Ρ‚ изобраТСния ΠΈΠ·-Π·Π° Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ бСзопасности, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΠΎΠ½ΠΈ Π½Π°Π»Π°Π³Π°ΡŽΡ‚, поэтому я ΠΏΠΎΠ΄ΡƒΠΌΠ°Π», Ρ‡Ρ‚ΠΎ Π±ΡƒΠ΄Ρƒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ Π²Π»ΠΎΠΆΠ΅Π½ΠΈΠΉ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ content_id ΠΈ ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ, Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π»ΠΈ это вмСсто использования ΠΎΠ±Ρ‹Ρ‡Π½ΠΎΠ³ΠΎ Ρ‚Π΅Π³Π° src.

ΠŸΡ€ΠΈ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΠ΅ сСтка ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Π½Π΅Π²Π΅Ρ€Π½Ρ‹ΠΉ запрос. Π’ΠΎΡ‚ ΠΌΠΎΠΉ ΠΌΠ΅Ρ‚ΠΎΠ΄.

Π― ΠΊΠΎΠ΄ΠΈΡ€ΡƒΡŽ JPG Ρ‚Π°ΠΊ:

    let bitmap = fs.readFileSync(imageDir);
    imageBase64URL = new Buffer(bitmap).toString('base64');

Π—Π°Ρ‚Π΅ΠΌ я ΠΏΠ΅Ρ€Π΅Π΄Π°ΡŽ Π·Π°ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ JPG Π² ΠΏΠΎΠ»Π΅ содСрТимого Π²Π½ΡƒΡ‚Ρ€ΠΈ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π° Π²Π»ΠΎΠΆΠ΅Π½ΠΈΠΉ:

mailer.send({
       to: '[email protected]',
       from: '[email protected]',
       subject: `You have been removed from ${house.name} by ${removerName}`,
       html: result,
       attachments: [
            {
               content: imageBase64URL,
               filename: 'cluttr-logo.jpg',
               contentId: 'cluttr-logo'
            },
       ]
});

НаконСц, я Π²ΡΡ‚Π°Π²Π»ΡΡŽ свой CID Π² свой Ρ„Π°ΠΉΠ» ejs ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

html <img alt="Logo" src="cid:cluttr-logo" width="60" height="60"

НадСюсь, ΠΊΡ‚ΠΎ-Ρ‚ΠΎ ΠΏΠΎΠ½ΠΈΠΌΠ°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ я дСлаю Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ. Π‘Π»Π°Π³ΠΎΠ΄Π°Ρ€ΡŽ.

ΠŸΡ€ΠΈΠ²Π΅Ρ‚ @ lvh1g15 ,

Π― Π΄ΡƒΠΌΠ°ΡŽ, Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ disposition: inline , Π²ΠΎΡ‚ Ρ‚Π°ΠΊ .

Π‘ Π½Π°ΠΈΠ»ΡƒΡ‡ΡˆΠΈΠΌΠΈ поТСланиями,

Π­Π»ΠΌΠ΅Ρ€

@thinkingserious : ΠŸΡ€ΠΈΠ²Π΅Ρ‚, Π²Ρ‹ Π·Π½Π°Π΅Ρ‚Π΅, ΠΊΠ°ΠΊ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ Π²Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅ с шаблоном Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ?

@thinkingserious Π΅ΡΡ‚ΡŒ Π»ΠΈ способ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π²Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅ URL-адрСса ΠΊ ΠΌΠΎΠ΅ΠΌΡƒ элСктронному ΠΏΠΈΡΡŒΠΌΡƒ, ΠΊΠ°ΠΊ Π΅Ρ‰Π΅ я ΠΌΠΎΠ³Ρƒ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π²Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΊ ΠΌΠΎΠ΅ΠΌΡƒ элСктронному ΠΏΠΈΡΡŒΠΌΡƒ. Π½Π΅ смог Π½Π°ΠΉΡ‚ΠΈ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚, ΠΎΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‰ΠΈΠΉ способы Ρ€Π°Π±ΠΎΡ‚Ρ‹ влоТСния Π² Sendgrid.

Π‘ Π£Π²Π°ΠΆΠ΅Π½ΠΈΠ΅ΠΌ,
ΠœΠΎΡ…ΠΈΡ‚

@thinkingserious : ΠŸΡ€ΠΈΠ²Π΅Ρ‚, Π²Ρ‹ Π·Π½Π°Π΅Ρ‚Π΅, ΠΊΠ°ΠΊ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ Π²Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅ с шаблоном Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ?

Ссли Π²Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ v3 API, просто Π΄ΠΎΠ±Π°Π²ΠΈΠ»ΠΈ ΠΊΠ»ΡŽΡ‡ attachments . content Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ Π·Π°ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Π½ Π² Base64

https://sendgrid.com/docs/API_Reference/Web_API_v3/Mail/index.html

email = {
   "from":{  
      "email":"[email protected]"
   },
   "personalizations":[  
      {  
         "to":[  
            {  
               "email" : "[email protected]"
            }
         ],
         "dynamic_template_data": {
         }
      }
   ],
   "attachments": [
       {
           "content": "",
           "filename" ""
       }
   ]
   "template_id":"someid"
}

Бсылка Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Π½Π΅ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚.
Π­Ρ‚ΠΎ новая ссылка:
https://github.com/sendgrid/sendgrid-nodejs/blob/master/use-cases/attachments.md

Новая новая ссылка: https://github.com/sendgrid/sendgrid-nodejs/blob/master/docs/use-cases/attachments.md

Π‘Ρ‹Π»Π° Π»ΠΈ эта страница ΠΏΠΎΠ»Π΅Π·Π½ΠΎΠΉ?
0 / 5 - 0 Ρ€Π΅ΠΉΡ‚ΠΈΠ½Π³ΠΈ