postfix 2.6.6 및 centOS 6.4와 함께 mailx를 사용하여 HTML 보내기

postfix 2.6.6 및 centOS 6.4와 함께 mailx를 사용하여 HTML 보내기

CentOS 서버에서 사용자에게 HTML 이메일을 보내려고 합니다. 장기적으로는 명령을 실행하여 사용자에게 보고서를 보내는 COBOL 프로그램을 구축할 것입니다.

다음은 몇 가지 세부정보입니다.

  • 센트OS 6.4
  • 월간 활성 사용자: 이메일
  • MTA: 접미사 2.6.6
  • Postfix는 교환 서버를 통해 릴레이를 실행합니다.

내가 실행하려고하는 명령은 다음과 같습니다. 오늘 가장 많이 본 것은 아래의 것입니다.

$ mailx -a 'Content-Type: text/html' -s "Command Line Test" [email protected] < ./bodytext.html

표시된 명령을 실행한 후 "Content-Type: text/html: 해당 파일 또는 디렉터리가 없습니다"라는 오류 메시지가 나타납니다. 일부 업데이트 후에 -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를 직접 추가해야 합니다. 파일은 다음과 같아야 합니다.SubjectContent-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 이메일을 보낼 수 있습니다.

관련 정보