OpenSSL을 사용하여 이메일 보내기

OpenSSL을 사용하여 이메일 보내기

openSUSE 아래의 OpenSSL 모듈을 사용하면 이 명령 목록을 사용하여 이메일을 보낼 수 있습니다.

openssl s_client -starttls smtp -connect smtp.gmail.com:587 -crlf
helo
auth login
(Put base64 encoded username)
(Put base64 encoded password)
mail from:<email>
rcpt to:<email>
Data
From: email
To: email1, email2, .....
Subject: 
(Message body goes here)
.

이러한 일련의 명령을 한 번에 실행할 수 있습니까? 대본처럼요?

참고: OpenSSL 모듈을 포함하는 임베디드 Linux 시스템이 있으며 여기에도 동일한 내용이 적용됩니다.

답변1

시도해 봤어?

openssl s_client -starttls smtp -connect smtp.gmail.com:587 -crlf  <<EOF
helo
auth login
$(echo -n $username | base64)
$(echo -n $password | base64)
mail from:$email0
rcpt to:$email0
Data
From: $email0
To: $emaildest
Subject: $(echo $subject)

$(< body.txt)
.
EOF
  • 메시지 본문을 넣어야 합니다 body.txt(그리고 나중에 삭제해야 합니다).
  • 다 설정해야 하는데 $var...

그런데 메시지에 서명하고 암호화했다면 확인해 보세요.이 문제

답변2

3bdalla로: SSL 연결이 설정되었지만 애플리케이션 계층 데이터가 전송되지 않고 인증서만 표시되었을 때 비슷한 문제를 해결해야 했습니다. openssl 명령줄에 다음 매개변수를 추가해 보세요. -key, keyfile, -cert and certfile매개변수 뒤에:<port>

openssl s_client -connect <host>:<port> -key <keyfile> -cert <certfile>

(먼저 명령을 시도했습니다 echo "some_data" | openssl s_client -connect <host>:<port> -key <keyfile> -cert <certfile>:)

관련 정보