Introduction
AWS SES를 사용해서 메일을 발송 할 때 Message 부분에는 Charset을 설정하는 부분이 있는데 Source부분에는 따로 그런 설정 없이 스트링만 보낼 수 있어서 한글 이름을 사용하려면 따로 인코딩을 했습니다.
구글링 해보니 아래 같은 답변이 있네요.
You would need to use MIME encoded-word syntax to use non-ASCII characters in the Source text. There's some additional discussion in the SES API reference:
In all cases, the email address must be 7-bit ASCII. If the text must contain any other characters, then you must use MIME encoded-word syntax (RFC 2047) instead of a literal string. MIME encoded-word syntax uses the following form: =?charset?encoding?encoded-text?=. For more information, see RFC 2047.
위 답변에 따르면 Source 부분에 ASCII characters 외의 다른 문자를 사용하려면 이메일에서 사용하는 Media-Type(MIME)라는 타입으로 변환해서 바꿔주어야 한다고 하는군요.
인코딩이나 MIME에 대해서 더 알고 싶으신 분들은 아래 첨부한 레퍼런스 링크를 참고해주시면 됩니다.
아래 커맨드로 변환에 필요한 라이브러리를 설치하고
npm i q-encoding utf8
아래 코드처럼 인코딩해서 사용하시면 됩니다.
var qencode = require('q-encoding');
var utf8 = require('utf8');
var MIME = (string) => '=?UTF-8?Q?' + qencode.encode(utf8.encode(string)) + '?=';
...
ses.sendEmail({
...
Source: MIME(fromName) + ' <' + fromEmail + '>',
...
}, ...
References
제 글이 도움이 되셨다면 간단하게 '공감', '댓글' 부탁드립니다!
'Tip' 카테고리의 다른 글
mac에서 공유기 관리자 페이지 접속하기 (0) | 2021.03.11 |
---|---|
맥북에 aws cli 설치하기 (0) | 2019.03.06 |
Mac에서 Virtualenv + tensorflow + Keras 설치하기 (0) | 2019.01.03 |
MAC에서 GCC 컴파일러 사용하기(Command line tools 설치 방법) (0) | 2018.12.30 |
웹호스팅 웹하드 용량이 이상하게 많이 차지할 때 해결방법 (0) | 2018.12.11 |
댓글