DIY: 이메일 마케팅을 위해 즉석에서 동적 이미지 생성
11847 단어 Nodeshowdevtutorialjavascript
그러나 캐치로
내가 스스로 설정한 몇 가지 규칙.
이것이 왜 필요한가요?
이메일 개발은 가능한 측면에서 먼 길을 왔지만 이메일이 코딩되는 방식은 여전히 전통적인 웹 개발보다 훨씬 뒤떨어져 있습니다. <table>
가 날이 갈수록 인기를 얻고 있지만 이메일에서는 레이아웃에 여전히 <div>
를 사용합니다.
보안 문제로 인해 이메일에 JavaScript와 같은 스크립트를 사용하는 것은 물론 즉시 스팸 처리될 수 있습니다. 사람과 회사는 여전히 Outlook 2010과 같은 소프트웨어를 사용하고 있으므로 특정 요소 및 레이아웃에 대한 교차 플랫폼 지원은 1달러짜리 DVD 상자만큼 지저분합니다.
일반적으로 이메일은 정적이고 지루하며 목표 시장의 관심을 끌기 어렵습니다. 그래서 우리는 이것에 대해 무엇을 할 수 있습니까?
동적으로 생성된 이미지 소개
이메일 클라이언트의 99%에서 작동하는 한 가지는 이미지입니다. 그래서 우리는 그것을 개선하는 데 집중합니다. 다이내믹한 이미지를 사용하면 훌륭한 사용자 정의 글꼴, 디자인 및 사용자 정의 애니메이션 GIF로 독자에게 이메일을 개인화하여 독자의 관심을 끌 수 있습니다.
위의 예는 배경 이미지의 사용자 정의 글꼴로 수신자의 이름을 사용하여 이메일 헤더를 개인화하는 것입니다.
건물을 짓자
요약하면 NodeJS로 간단한 Express 서버를 구축할 것입니다. 캔버스를 PNG로 내보내기 전에 node-canvas 모듈을 사용하여 원하는 것을 정확하게 그립니다.
프로젝트 초기화 및 종속성 설치
$ npm init
$ npm install express --save
$ npm install canvas --save
server.js를 만들고 필요한 종속성을 요구합니다.
글꼴 파일을 등록하는 것을 잊지 마십시오.
const express = require('express')
const { registerFont, createCanvas, loadImage } = require('canvas')
const app = express()
const port = 3000
// We need to register our font file to be used in canvas
registerFont('./fonts/Sign-Painter-Regular.ttf', { family: 'signpainter' })
app.get('/', (req, res) => {
res.send('Hello World!')
})
app.listen(port, () => console.log(`Example app listening at http://localhost:${port}`))
모두 작동하는 경우 node server
로 지원을 시작하고 hello world
에서 http://localhost:3000
를 방문할 수 있습니다.
이미지에 대한 사용자 지정 GET 경로 만들기
이렇게 하면 캔버스에서 사용할 쿼리 매개변수를 가져와야 합니다. 우리의 경우에는 이름만 원하므로 다음과 같이 하면 됩니다.
app.get('/header', (req, res) => {
// Grab first name from query
let firstname = decodeURI(req.query.name)
// Custom canvas added here
// ...
// ...
})
경로 내부에 캔버스 논리를 추가하십시오.
우리의 디자인에서 우리는 유일한 개인화는 이름이 될 것이라는 것을 알고 있습니다. 따라서 나머지는 말하자면 "배경 이미지"가 될 수 있습니다.
app.get('/header', (req, res) => {
// Grab first name from query
let firstname = decodeURI(req.query.name) + "!";
// Define the canvas
const width = 600 // width of the image
const height = 474 // height of the image
const canvas = createCanvas(width, height)
const context = canvas.getContext('2d')
// Define the font style
context.textAlign = 'center'
context.textBaseline = 'top'
context.fillStyle = '#FFFFFF'
context.font = "80px 'signpainter' bold";
// Load and draw the background image first
loadImage('./images/background.jpg').then(image => {
// Draw the background
context.drawImage(image, 0, 0, 600, 474)
// Draw the text
context.fillText(firstname, 300, 150)
// Convert the Canvas to a buffer
const buffer = canvas.toBuffer('image/png')
// Set and send the response as a PNG
res.set({ 'Content-Type': 'image/png' });
res.send(buffer)
})
})
})
배경 이미지와 텍스트를 그린 후 캔버스를 버퍼로 변환하고 응답을 PNG 이미지로 클라이언트에 다시 보냅니다. 이를 통해 클라이언트 측에서 동적 이미지를 로드할 수 있습니다.
이것을 실행할 시간입니다.
node server
로 앱을 시작하고 http://localhost:3000/header?name=@Sudo_Overflow
에서 만든 새 경로를 방문하세요.
그리고 거기 당신은 그것을 가지고
이제 이메일의 <img>
태그에 이름을 다음과 같이 병합할 수 있습니다.<img src="http://localhost:3000/header?name={{FirstName}}">
자동으로 생성됩니다.
캔버스 사용에 대한 아이디어에 특별히 감사드립니다. 그의 기사here를 확인할 수 있습니다.
전체 프로젝트는 myGithub에서 찾을 수 있습니다.
이를 개선할 수 있는 방법을 알고 있거나 피드백이 있는 경우 댓글이나 Twitter에서 알려주세요.
Reference
이 문제에 관하여(DIY: 이메일 마케팅을 위해 즉석에서 동적 이미지 생성), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://dev.to/sudo_overflow/diy-generating-dynamic-images-on-the-fly-for-email-marketing-h51
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
이메일 클라이언트의 99%에서 작동하는 한 가지는 이미지입니다. 그래서 우리는 그것을 개선하는 데 집중합니다. 다이내믹한 이미지를 사용하면 훌륭한 사용자 정의 글꼴, 디자인 및 사용자 정의 애니메이션 GIF로 독자에게 이메일을 개인화하여 독자의 관심을 끌 수 있습니다.
위의 예는 배경 이미지의 사용자 정의 글꼴로 수신자의 이름을 사용하여 이메일 헤더를 개인화하는 것입니다.
건물을 짓자
요약하면 NodeJS로 간단한 Express 서버를 구축할 것입니다. 캔버스를 PNG로 내보내기 전에 node-canvas 모듈을 사용하여 원하는 것을 정확하게 그립니다.
프로젝트 초기화 및 종속성 설치
$ npm init
$ npm install express --save
$ npm install canvas --save
server.js를 만들고 필요한 종속성을 요구합니다.
글꼴 파일을 등록하는 것을 잊지 마십시오.
const express = require('express')
const { registerFont, createCanvas, loadImage } = require('canvas')
const app = express()
const port = 3000
// We need to register our font file to be used in canvas
registerFont('./fonts/Sign-Painter-Regular.ttf', { family: 'signpainter' })
app.get('/', (req, res) => {
res.send('Hello World!')
})
app.listen(port, () => console.log(`Example app listening at http://localhost:${port}`))
모두 작동하는 경우 node server
로 지원을 시작하고 hello world
에서 http://localhost:3000
를 방문할 수 있습니다.
이미지에 대한 사용자 지정 GET 경로 만들기
이렇게 하면 캔버스에서 사용할 쿼리 매개변수를 가져와야 합니다. 우리의 경우에는 이름만 원하므로 다음과 같이 하면 됩니다.
app.get('/header', (req, res) => {
// Grab first name from query
let firstname = decodeURI(req.query.name)
// Custom canvas added here
// ...
// ...
})
경로 내부에 캔버스 논리를 추가하십시오.
우리의 디자인에서 우리는 유일한 개인화는 이름이 될 것이라는 것을 알고 있습니다. 따라서 나머지는 말하자면 "배경 이미지"가 될 수 있습니다.
app.get('/header', (req, res) => {
// Grab first name from query
let firstname = decodeURI(req.query.name) + "!";
// Define the canvas
const width = 600 // width of the image
const height = 474 // height of the image
const canvas = createCanvas(width, height)
const context = canvas.getContext('2d')
// Define the font style
context.textAlign = 'center'
context.textBaseline = 'top'
context.fillStyle = '#FFFFFF'
context.font = "80px 'signpainter' bold";
// Load and draw the background image first
loadImage('./images/background.jpg').then(image => {
// Draw the background
context.drawImage(image, 0, 0, 600, 474)
// Draw the text
context.fillText(firstname, 300, 150)
// Convert the Canvas to a buffer
const buffer = canvas.toBuffer('image/png')
// Set and send the response as a PNG
res.set({ 'Content-Type': 'image/png' });
res.send(buffer)
})
})
})
배경 이미지와 텍스트를 그린 후 캔버스를 버퍼로 변환하고 응답을 PNG 이미지로 클라이언트에 다시 보냅니다. 이를 통해 클라이언트 측에서 동적 이미지를 로드할 수 있습니다.
이것을 실행할 시간입니다.
node server
로 앱을 시작하고 http://localhost:3000/header?name=@Sudo_Overflow
에서 만든 새 경로를 방문하세요.
그리고 거기 당신은 그것을 가지고
이제 이메일의 <img>
태그에 이름을 다음과 같이 병합할 수 있습니다.<img src="http://localhost:3000/header?name={{FirstName}}">
자동으로 생성됩니다.
캔버스 사용에 대한 아이디어에 특별히 감사드립니다. 그의 기사here를 확인할 수 있습니다.
전체 프로젝트는 myGithub에서 찾을 수 있습니다.
이를 개선할 수 있는 방법을 알고 있거나 피드백이 있는 경우 댓글이나 Twitter에서 알려주세요.
Reference
이 문제에 관하여(DIY: 이메일 마케팅을 위해 즉석에서 동적 이미지 생성), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://dev.to/sudo_overflow/diy-generating-dynamic-images-on-the-fly-for-email-marketing-h51
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
$ npm init
$ npm install express --save
$ npm install canvas --save
const express = require('express')
const { registerFont, createCanvas, loadImage } = require('canvas')
const app = express()
const port = 3000
// We need to register our font file to be used in canvas
registerFont('./fonts/Sign-Painter-Regular.ttf', { family: 'signpainter' })
app.get('/', (req, res) => {
res.send('Hello World!')
})
app.listen(port, () => console.log(`Example app listening at http://localhost:${port}`))
app.get('/header', (req, res) => {
// Grab first name from query
let firstname = decodeURI(req.query.name)
// Custom canvas added here
// ...
// ...
})
app.get('/header', (req, res) => {
// Grab first name from query
let firstname = decodeURI(req.query.name) + "!";
// Define the canvas
const width = 600 // width of the image
const height = 474 // height of the image
const canvas = createCanvas(width, height)
const context = canvas.getContext('2d')
// Define the font style
context.textAlign = 'center'
context.textBaseline = 'top'
context.fillStyle = '#FFFFFF'
context.font = "80px 'signpainter' bold";
// Load and draw the background image first
loadImage('./images/background.jpg').then(image => {
// Draw the background
context.drawImage(image, 0, 0, 600, 474)
// Draw the text
context.fillText(firstname, 300, 150)
// Convert the Canvas to a buffer
const buffer = canvas.toBuffer('image/png')
// Set and send the response as a PNG
res.set({ 'Content-Type': 'image/png' });
res.send(buffer)
})
})
})
node server
로 앱을 시작하고 http://localhost:3000/header?name=@Sudo_Overflow
에서 만든 새 경로를 방문하세요.그리고 거기 당신은 그것을 가지고
이제 이메일의
<img>
태그에 이름을 다음과 같이 병합할 수 있습니다.<img src="http://localhost:3000/header?name={{FirstName}}">
자동으로 생성됩니다.캔버스 사용에 대한 아이디어에 특별히 감사드립니다. 그의 기사here를 확인할 수 있습니다.
전체 프로젝트는 myGithub에서 찾을 수 있습니다.
이를 개선할 수 있는 방법을 알고 있거나 피드백이 있는 경우 댓글이나 Twitter에서 알려주세요.
Reference
이 문제에 관하여(DIY: 이메일 마케팅을 위해 즉석에서 동적 이미지 생성), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/sudo_overflow/diy-generating-dynamic-images-on-the-fly-for-email-marketing-h51텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)