제가 하는 일은 CSV 파일을 가져와서 외부 메일 서비스를 통해 보내는 것입니다. 한 가지 예외를 제외하면 모든 것이 괜찮아 보였습니다. Windows 스타일 CRLF CSV 파일이 프로세스에서 손상되었으며 메일 클라이언트에서 열었을 때 각 줄 끝에 3개의 0x0A 문자가 있는 것을 발견했습니다.
파일을 Base64 인코딩으로 강제하는 것이 쉬울 줄 알았는데, s-nail이 프로그래밍 관점에서 페라리여야 함에도 불구하고 가속 페달을 찾을 수 없습니다. MIME 설정을 사용하면 콘텐츠 유형을 변경할 수 있지만 페이로드를 Base 64로 변환할 수는 없습니다.
echo "CSV files attached:" | s-nail -vv -Smimetypes-load-control -X'mimetype "application/octet-stream csv"' -r [email protected] -s "Your CSV file" -a /data/review/fun.csv -S smtp-use-starttls -S smtp-auth=login -S smtp-auth-user="[email protected]" -S smtp-auth-password="yourmom" -S smtp="corgibutts.com:587" "[email protected]"
누구든지 이것을 달성하는 방법을 알고 있습니까?
답변1
나는 mac/unix 줄 끝이 깨지지 않았으며 이를 받아들일 수 있는 끝으로 전환했다는 것을 발견했습니다.
저자는 내 질문에 대한 응답으로 이것을 자신의 메일링 리스트에 게시했으며 패치는 약 3개월 후에 널리 출시될 예정입니다.
오늘 이와 같은 것을 구현했는데 v14.10(희망크리스마스 무렵).
접두사 !를 추가하여 Base64 문자 집합 사양을 적용할 수 있습니다.
-a file[=[!]input-charset[#[!]output-charset]], --attach=.. (전송 모드) 물결표 확장의 영향을 받는 파일을 첨부합니다(파일 이름 변환 및 폴더 참조). 작성 모드에서 COMMAND ESCAPES ~@, 특히 스크립트 가능한 ~^는 파일 첨부에 대한 대안을 제공합니다.
파일에 액세스할 수 없지만 등호가 포함된 경우 = 문자 세트 사양이 분할됩니다. 입력이 하나만 주어지면 입력이 고정되고 변환이 적용되지 않습니다. 비어 있거나 특수 문자열 하이픈 빼기 -는 ttycharset를 나타냅니다. 출력이 제공되면 파일 유형이나 내용에 관계없이 즉시 변환이 수행됩니다. 그러나 빈 문자열이나 하이픈 빼기 - 기본 문자 집합 변환을 강제합니다(-a file, -a file=# 및 -a file = -#- 동일), 나중에 MIME 카테고리 파일(HTML 메일 및 MIME), mime.types 파일 뒤에 첨부 파일을 적용합니다. ,+iconv가 없으면 해당 기능에서만 이 모드를 사용할 수 있습니다. 첨부 파일의 base64 MIME 인코딩을 강제하기 위해 문자 세트 이름 앞에 느낌표 "!"를 붙일 수 있습니다.
그의 메일링 리스트에 대화가 있습니다. 아직 그의 최근 답변을 보지 못했지만 결국에는 base64 인코딩 스레드에서 찾을 수 있을 것입니다.
https://lists.sdaoden.eu/pipermail/s-mailx/2022-September/thread.html