Linux에서 sendmail을 사용하여 첨부 파일(사진)이 포함된 이메일 보내기(ksh)

Linux에서 sendmail을 사용하여 첨부 파일(사진)이 포함된 이메일 보내기(ksh)

다음 명령을 사용하여 메일을 보내려고 합니다. 이 명령을 sqr에서 명령줄로 보내면 제대로 작동합니다. $FilePath_mail, 기타 정보 ToFromHTML 형식의 이메일 본문입니다. 본문 텍스트에 이미지(로고)를 넣고 싶어서 첨부파일로 보내고 싶습니다.

/usr/sbin/sendmail -t < $FilePath_mail

메일에 첨부 파일(기본적으로 이미지)을 추가하려면 위 명령을 변경해야 합니까?

답변1

이미지를 메시지에 MIME 부분으로 추가한 다음 Content-ID응답된(CID)를 사용하여 참조 해야 합니다.여기

뒤에 사람익스프레스 MTA유틸리티가 구현되었습니다.본뜨다. Courier MTA의 일부로 설치되지만 일부 시스템에서는 독립 실행형 패키지이거나메일배송유용.

이렇게 하면 makemime명령줄에서 메일 메시지를 MIME으로 인코딩하는 것이 더 쉬워집니다. 해당 페이지의 예는 다음과 같습니다.

예를 들어:

# Take two files containing the text and the html version of a message, and
# add MIME headers to them.

makemime -c "text/plain; charset=iso-8859-1" -o tmp1.txt msg.txt
makemime -c "text/html; charset=iso-8859-1" -o tmp1.html msg.html

# Combine the result into a multipart/alternative collection

makemime -m "multipart/alternative" -a "Content-Disposition: inline" \
                                -o tmp.ma1 tmp1.txt
makemime -j tmp.ma1 -o tmp.ma2 tmp1.html

# Add MIME headers to an image attachment.

makemime -c "image/gif" -a "Content-Disposition: attachment" \
                        -o tmp2.gif attachment.gif

# Create the final multipart/mixed collection

makemime -m "multipart/mixed" -a "Mime-Version: 1.0" \
                              -o tmp.mm1 tmp.ma2
makemime -j tmp.mm1 -o output.msg tmp2.gif

이제 output.msg에는 완전한 MIME 컬렉션이 포함됩니다. "Subject:", "From:" 및 "To:" 헤더를 추가하고(물론 -a 옵션을 추가하여 수행할 수도 있음) 전송하세요.

그것이 바로 귀하가 요구하는 것입니다. 그리고 그것은 이루어질 수 있습니다. 이와 같은 도구를 사용하면 makemime프로세스가 매우 안전해질 수 있습니다.

그러나 Sendgrid의 기사를 읽어야 합니다."이메일에 이미지를 삽입하는 방법: 사실". 많은 클라이언트의 잘못된 처리로 인해 일반적으로 웹 서버의 이미지를 참조하게 됩니다. 이는 가장 간단한 방법이며 일반적으로 사용자가 "클릭하여 보기"를 요구하지만 클라이언트 간에 가장 일관된 결과를 제공하는 것으로 보입니다.

또 다른 옵션은 HTML 소스 코드에 로고를 인라인으로 삽입하는 것입니다.

 <img alt="Logo" src="data:image/jpeg;base64,">

또는

 <img alt="Logo" src="data:image/png;base64,"

그런 다음 이미지 파일의 Base64 인코딩 데이터를 추가하면 base64,준비가 완료됩니다. 그러나 이번에도 많은 고객들이 이를 좋아하지 않을 것입니다.

다음 명령을 사용하여 온라인으로 파일을 인코딩할 수 있습니다.base64encode.org. 먼저 다음과 같은 것을 사용하여 이미지를 압축하는 것이 좋습니다.작은 PNG

답변2

이미지만 보내기로 선택한 경우 언제든지 이메일을 통해 보낼 수 있습니다.mpack

필요한 구문은 대략 다음과 같습니다.

mpack -s "This is my image" $FilePath_mail [email protected]

~에서man mpack

이름

   mpack - pack a file in MIME format

설명 mpack 프로그램은 지정된 파일을 하나 이상의 MIME 메시지로 인코딩합니다. 결과 메시지는 한 명 이상의 수신자에게 메일로 전송되거나, 지정된 파일 또는 파일 세트에 기록되거나, 일련의 뉴스 그룹에 게시됩니다.

Debian에서는 다음과 같이 설치할 수 있습니다.

sudo apt-get install mpack

관련 정보