우리는 이메일을 보내기 위해 mutt를 사용합니다.
mutt -s "Test" -e "Content-Type: text/html" test@example.com < message.html
이메일 업데이트를 HTML 형식으로 보냅니다. 텍스트 버전과 HTML 버전이 모두 포함 된 전자 메일을 여러 부분으로 보내려고합니다.
- 전자 메일 제목과 전자 메일 본문의 HTML 및 텍스트 버전이 제공 될 때 Linux에서 이러한 멀티 파트 메시지를 작성하는 방법은 무엇입니까?
- 리눅스 프롬프트에서 mutt를 사용하여 1 단계에서 생성 된 멀티 파트 이메일을 보낼 수 있습니까?
환경 : RedHat Enterprise Linux 5, 뮤트
답변
전자 메일 제목과 전자 메일 본문의 HTML 및 텍스트 버전이 제공 될 때 Linux에서 이러한 멀티 파트 메시지를 작성하는 방법은 무엇입니까?
RFC 2046에multipart/alternative
설명 된 대로 유형의 메시지를 작성하십시오 .
보낸 사람 : Example Company <news@example.com> 받는 사람 : Joe User <joe.u@example.net> 날짜 : 2011 년 5 월 21 일 토요일 17:40:11 +0300 제목 : 멀티 파트 메시지 예 MIME 버전 : 1.0 콘텐츠 유형 : multipart / alternative; 경계 = asdfghjkl --asdfghjkl 내용 유형 : 텍스트 / 일반; 문자 집합 = UTF-8 여러분 안녕하세요! --asdfghjkl 내용 유형 : text / html; 문자 집합 = UTF-8 <! DOCTYPE html> <본체> <p> 안녕하세요! </ p> </ body> --asdfghjkl--
정확한 구문 은 RFC 2046 및 RFC 5322 를 참조하십시오 .
리눅스 프롬프트에서 mutt를 사용하여 1 단계에서 생성 된 멀티 파트 이메일을 보낼 수 있습니까?
올바른 Content-Type 헤더를 설정하는 방법을 찾으면 (이 예제에서는을 사용 -e
하고 있지만 mutt는 -e
다른 목적으로 사용 합니다. -e "my_hdr Content-Type: ..."
원본 텍스트 / 일반 헤더는 그대로 둡니다.)
를 통해 생성 된 메일을 직접 보내는 것이 좋습니다 sendmail
. 헤더를 직접 작성해야합니다. 예제를 참조하십시오. strftime("%a, %d %b %Y %T %z")
날짜에 사용 하고 경계에 임의의 영숫자 문자열을 사용하십시오. 그런 다음 헤더를 포함하여 준비된 메시지를 다음으로 파이프하십시오 sendmail -i -t
.
sendmail -i -t < above-example.txt
(이 -t
옵션은 “받는 사람 : 행 에서받는 사람 가져 오기”를 의미 하며을 사용할 수도 있습니다 sendmail -i joe.u@example.net
)
답변
https://github.com/shivylp/mailprod를 살펴보십시오 . 큰 메일에 명령 행을 사용하는 것이 신뢰할 수있는 옵션이 아니기 때문에이 작은 Python 유틸리티 / 라이브러리를 개발했습니다. mailprodcli를 사용하면 말하는 것처럼 간단합니다 mailprodcli template.xml --send
. 이미지를 포함하는 template.xml 예제는 다음과 같이 간단합니다.
<?xml version="1.0" encoding="UTF-8"?>
<mail>
<from>sender@source.com</from>
<to>recipient1@destination1.com</to>
<to>recipient2@destination2.com</to>
<body type="text/html">
<![CDATA[<html>
<b>Neat!</b><br><center><img src="cid:sample"></center>
</html>]]>
</body>
<body type="image" src="sample.png" id="sample" />
</mail>