
CentOS 서버에서 사용자에게 HTML 이메일을 보내려고 합니다. 장기적으로 나는 사용자에게 보고서를 보내는 명령을 실행하는 COBOL 프로그램을 구축할 것입니다.
다음은 몇 가지 세부정보입니다.
- 센트OS 6.4
- MAU : 메일엑스
- MTA: 포스트픽스 2.6.6
- Postfix는 Exchange 서버를 통해 릴레이를 실행하고 있습니다.
내가 실행해 본 명령은 무엇입니까? 오늘 제가 가장 많이 본 것은 다음과 같습니다.
$ mailx -a 'Content-Type: text/html' -s "Command Line Test" [email protected] < ./bodytext.html
표시된 명령을 실행한 후 "Content-Type: text/html: 해당 파일 또는 디렉터리가 없습니다"라는 오류가 발생합니다. 나는 특정 업데이트 후에 Content-Type 지정을 위한 플래그로 -a를 허용하는 것을 중단했다고 확신합니다.
또한 실제 bodytext.html 파일의 첫 번째 줄에 'Content-Type: text/html'을 추가해 보았습니다. 저는 HTML 이메일을 보내기 위해 무엇을 할 수 있는지 잘 모르겠습니다. 내가 찾은 일부 소스에서는 mailx와 postfix가 HTML 이메일을 제대로 보낼 수 없다고 말합니다. 그렇지 않기를 바라지만 만약 그렇다면 다른 MAU 및 MTA 기술에 대해 어떻게 생각하시는지 알고 싶습니다.
답변1
생성된 텍스트 파일을 완전히 제어할 수 있는 것처럼 보이므로 가장 간단하고 이식 가능한 방법은 /usr/sbin/sendmail
직접 참여하는 것입니다.
/usr/sbin/sendmail -t < complete-mail.txt
From
이렇게 하려면 모든 중요한 헤더( , To
, Subject
및 ) 를 직접 추가해야 합니다 Content-Type
. 파일은 다음과 같아야 합니다.
From: Company <[email protected]>
To: Customer <[email protected]>
Subject: You are awesome
Content-Type: text/html
<html>…</html>
Postfix는 누락되었지만 Date
.
답변2
혹시 설명서도 읽어보셨나요?mailx
, 특히 -a
옵션?
-a file
주어진 파일을 메시지에 첨부하세요.
에서질 답변, CentOS는 다음 버전을 사용하고 있습니다 mailx
.
가보와 함께메일엑스, 편리한 방법이 없습니다. 임의의 헤더를 삽입할 수 있는 한 가지 방법은 editheaders=1로 설정하고 외부 편집기(스크립트일 수 있음)를 사용하는 것입니다.
## Prepare a temporary script that will serve as an editor. ## This script will be passed to ed. temp_script=$(mktemp) cat <<'EOF' >>"$temp_script" 1a Content-Type: text/html . $r test.html w q EOF ## Call mailx, and tell it to invoke the editor script EDITOR="ed -s $temp_script" heirloom-mailx -S editheaders=1 -s "Subject" to@address <<EOF ~e . EOF rm -f "$temp_script"
Postfix는 확실히 HTML 메일을 보낼 수 있습니다.