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
를 직접 추가해야 합니다. 파일은 다음과 같아야 합니다.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 이메일을 보낼 수 있습니다.