저는 종종 telnet이나 netcat을 사용하여 smtp 서버에 연결하여 테스트로 이메일을 보냅니다.
Telnet이나 Netcat을 사용하여 이메일을 보내는 방법을 아는 사람이 있습니까?하지만 파일도 첨부해 주세요? 더 나은 방법이 있을 수 있지만 여전히 알고 싶습니다. :-)
목표를 달성하기 위해 작은 bash 쉘을 사용하는 솔루션에 만족하지만 다른 도구는 사용하고 싶지 않습니다...
답변1
좋아요, 그래서 모든 사람의 댓글을 출발점으로 삼아 이 어리석은 혼란을 생각해냈습니다 :-) ...
{
sleep 5;
echo 'ehlo';
sleep 3;
echo 'MAIL FROM:<[email protected]>';
sleep 3;
echo 'RCPT TO: <kyle@test_dest.com>';
sleep 3;
echo 'DATA';
sleep 3;
echo -e 'To:[email protected]\nMIME-Version: 1.0 (mime-construct 1.9)\nContent-Type: application/zip\nContent-Transfer-Encoding: base64\n\n';
dd if=/dev/urandom bs=4 count=10 2>/dev/null | openssl base64;
echo '.';
} | telnet mx1.testdest.com 25
답변2
으악. 첨부 파일을 base64로 인코딩하고 MIME 헤더를 생성해야 합니다.
매번 "즉시" 새 메시지를 생성하는 것보다 "실제" 이메일 프로그램에서 매우 짧은 예시 메시지를 자신에게 이메일로 보내는 것이 아마도 더 쉬울 것입니다. 적절한 인코딩으로 변환하고 MIME 헤더를 생성합니다).
해당 메시지를 헤더와 함께 텍스트 파일에 저장하고(물론 전송 헤더는 제거) 향후 세션을 위해 telnet 또는 netcat에 수정/복사/붙여넣기만 하면 됩니다.
답변3
SMTP 서버를 직접 테스트하는 것도 가능하고 실행 가능하지만 이를 위해 설계된 도구를 사용하는 것이 훨씬 쉽습니다.
이 기사에서는 SWAKS에 대해 설명합니다.. swaks는 smtp 서버 테스트용으로 설계되었습니다. 첨부 파일, 인증 및 암호화를 지원합니다!
답변4
Telnet - 여러 첨부 파일이 포함된 이메일 보내기
고양이 첨부파일.zip | base64 > zip.txt 고양이 첨부파일.pdf | base64 > pdf.txt # 콘텐츠 유형: text/csv; name="$FILE" # CSV 파일의 경우 # 콘텐츠 유형: application/x-msdownload; name="$FILE" # 실행 파일용 # 콘텐츠 유형: text/xml; name="$FILE" # xml 파일의 경우 또는 application/xml을 사용해 보세요. 텔넷 smtp.server.dom 25 헬리콥터 메일 보낸 사람:[이메일 보호됨] RCPT 대상:[이메일 보호됨] 데이터 제목: 테스트 이메일 에서:[이메일 보호됨] 에게:[이메일 보호됨] MIME 버전: 1.0 콘텐츠 유형: 다중 부분/혼합; 경계="X-=-=-=-텍스트 경계" --X-=-=-=-텍스트 경계 콘텐츠 유형: 텍스트/일반 여기에 메시지를 넣으세요... --X-=-=-=-텍스트 경계 콘텐츠 유형: 애플리케이션/zip; 이름="파일.zip" 콘텐츠 전송 인코딩: base64 내용-처분: 첨부; 파일명="파일.zip" UEsDBBQAAAAIAG1+zEoQa.... zip.txt 복사/붙여넣기 --X-=-=-=-텍스트 경계 콘텐츠 유형: 텍스트/pdf; 이름="파일.pdf" 콘텐츠 전송 인코딩: base64 내용-처분: 첨부; 파일명="file.pdf" UEsDBBQAAAAIAG1+zEoQa....pdf.txt 복사/붙여넣기 --X-=-=-=-텍스트 경계 . 그만두다