GNU 메일을 사용하여 @kindle.com에 첨부 파일 보내기

GNU 메일을 사용하여 @kindle.com에 첨부 파일 보내기

배경: RSS 피드를 주기적으로 가져와 모바일 전자책으로 패키징하여 내 킨들로 보내도록 서버를 설정하려고 합니다.

질문: 내 @kindle.com 이메일 주소로 보내도록 서버를 구성하는 경우(아래 설명 참조)https://www.amazon.com/gp/sendtokindle/email) 다음과 같은 내용의 이메일을 받았습니다.

Kindle로 보내는 이메일에는 첨부 파일이 포함되어 있지 않습니다.

첨부 파일이 포함된 이메일을 보내려면 다음 명령을 사용합니다.

echo "See attachment" | mail -s subject -aFrom:"$EMAIL_FROM" -A $EMAIL_FILE -r $EMAIL_FROM $EMAIL_TO

저는 이 명령을 @kindle.com 대신 개인 이메일 주소로 보내서 테스트했습니다. 이메일과 첨부 파일이 내 개인 편지함에 올바르게 나타납니다.

흥미롭게도, 이와 같이 mutt를 사용하면 잘 작동합니다(전자책이 내 킨들에 표시되는 것처럼).

echo "See attachment" | mutt -s subject -a $EMAIL_FILE -- $EMAIL_TO

호스팅된 SMTP 서버로 이메일을 전달하기 위해 postfix를 사용하고 있습니다. 접미사 log( )를 확인했지만 /var/log/mail.log위 두 방법의 차이점을 볼 수 없습니다. 서버가 Ubuntu 18.04를 실행 중입니다.

질문mutt: 에서는 작동 하지만 에서는 작동하지 않는 이유는 무엇입니까 mail? 이런 문제를 어떻게 해결할 수 있나요?


요청된 정보

mutt의 제목(너무 많이 제거한 경우 알려주세요):

Delivered-To: [...]
Received: by 2002:a2e:9c0f:0:0:0:0:0 with SMTP id s15-v6csp1355528lji;
        Sat, 10 Nov 2018 10:47:03 -0800 (PST)
[... removed X-* ...]
[... removed ARC-* ...]
Date: Sat, 10 Nov 2018 18:46:44 +0000
From: [...]
To: [...]
Subject: mutt
Message-ID: <20181110184643.GA23337@server>
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary="5mCyUwZo2JvN/JJP"
Content-Disposition: inline
User-Agent: Mutt/1.9.4 (2018-02-28)
[... removed X-* ...]

--5mCyUwZo2JvN/JJP
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline

See attachment

--5mCyUwZo2JvN/JJP
Content-Type: application/octet-stream
Content-Disposition: attachment; filename="20181024T0942.mobi"
Content-Transfer-Encoding: base64


--5mCyUwZo2JvN/JJP--

메일 제목:

Delivered-To: [...]
Received: by 2002:a2e:9c0f:0:0:0:0:0 with SMTP id s15-v6csp1355767lji;
        Sat, 10 Nov 2018 10:47:23 -0800 (PST)
[... removed X-* ...]
[... removed ARC-* ...]
MIME-Version: 1.0
Content-Type: application/octet-stream; name="20181024T0942.mobi"
Content-Transfer-Encoding: base64
Subject: mail
To: [...]
X-Mailer: mail (GNU Mailutils 3.4)
Message-Id: <[email protected]>
Date: Sat, 10 Nov 2018 18:47:07 +0000 (UTC)
From: [...]
[... removed X-* ...]

자세히 조사한 결과 mail"첨부 파일 보기" 텍스트가 누락된 것을 발견했습니다.

버전:

jonas@server:~$ mutt -v
Mutt 1.9.4 (2018-02-28)
[...]   

jonas@server:~$ mail --version
mail (GNU Mailutils) 3.4
[...]

jonas@server:~$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 18.04.1 LTS
Release:    18.04
Codename:   bionic

내가 올바르게 사용하고 있는 -A서버의 매뉴얼 페이지 에 따르면:

   -A, --attach=FILE
          attach FILE

   -a, --append=HEADER: VALUE append given header to the message being sent

답변1

mail여기서 무슨 일이 일어나고 있는지는 귀하의 프로그램이 uuencode 형식을 사용하여 첨부 파일을 보내는 동시에 muttMIME 형식으로도 첨부 파일을 보내는 것이라고 확신합니다 .

uuencode는 더 이상 사용되지 않는 이메일 형식이며 대부분 MIME으로 대체되었습니다. 따라서 @kindle.com의 핸들러가 uuencode 형식을 인식하지 못하고 MIME만 인식한다는 사실은 놀랍지 않습니다.

mail다양한 Linux 배포판에서 제공하는 구현이 많기 때문에(질문에서) 명령이 어떻게 작동할지 말하기가 어렵습니다 mail(대부분 첨부 파일을 전혀 지원하지 않음). Linux 배포판, 바이너리가 포함된 패키지 및 의 일부 참조에 대한 mail자세한 내용을 제공하시면 man mail이를 확인할 수 있습니다. (또한 매뉴얼 페이지에는 uuencoded 형식 첨부 파일 사용이나 MIME 지원 또는 지원 부족에 대한 세부 정보가 포함될 수 있습니다. 자세한 내용을 찾으려면 여기를 확인하세요.)

이를 확인하는 한 가지 방법은 원본 이메일 본문을 사용 mail하고 확인하여 mutt첨부 파일이 포함된 메시지를 자신에게 보내는 것 입니다. uuencode나 MIME과 같은 것인지 알 수 있어야 합니다.

uuencode는 다음과 같습니다:

begin 644 myebook.pdf

MIME은 다음과 같습니다.

Content-Type: application/pdf
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename=myebook.pdf

고쳐 쓰다:포함된 헤더로 보면 메일 프로그램처럼 보입니다.MIME을 사용하지만 이미 알고 있듯이 파일을 첨부 파일( 태그 지정 Content-Disposition: attachment)로 보내는 것이 아니라 이메일 본문(제공한 본문 무시)으로 보냅니다.

GNU 메일 유틸리티MIME 문서이는 예상대로 작동해야 함을 의미합니다. 예를 들어 다음과 같습니다.

위의 모든 예에서는 일반적인 대화형 셸로 이동하여 메시지 본문을 작성할 수 있습니다. 원하지 않는 경우 /dev/null을 표준 입력으로 리디렉션하여 비대화형 사용을 강제할 수 있습니다. 예를 들면 다음과 같습니다.

$ mail --attach=archive.tar < /dev/null

"대화형 셸"에 대한 내 이해는 메시지 텍스트를 입력하기를 기다리고 있지만 특수 문자(~)로 시작하는 명령을 허용하므로 명령 해석기도 된다는 것입니다.

어쩌면 mail본문을 파이프로 연결하지 않고 사용해 보고 입력이 필요한지 확인한 다음 직접 입력하면 이메일 본문을 받아들이는지 확인할 수 있습니까?

답변2

다양한 이름을 가진 많은 프로그램이 있습니다 mail. 당신이 그것을 가지고 있었고 nail나중에 "가보 메일"이 되었다고 가정하면, 당신이 그것을 사용 -A하고 -a뒤로 간 것처럼 보일 것입니다. 계정은 대문자, 첨부파일은 소문자를 사용합니다. 제목을 제공해야 한다는 Mark Plotnik의 의견에 동의합니다. Kindle은 특정 MIME 유형을 무시하고 다르게 mail작동할 수도 있습니다 mutt.

관련 정보