당신이 개발자 은서 리눅스 명령 라인 또는 서버 관리자가 원하는 기록이나 다른 데이터의 추출에서 관리 시스템는 방법을 알고,이메일을 보내서는 명령줄은 매우 유용합니다.
이 게시물에서는 터미널에서 이메일을 보내는 방법의 예를 찾을 수 있습니다. 사용자 지정 구성을 살펴보고 이메일 계정 또는 이메일 서비스 제공 업체에 SMTP 연결을 설정하는 방법을 터치합니다., 는 방법에 대해 알아보겠습니다 설치하는 데 필요한 콘솔 메일 패키지를 제공한 배경 명령행 옵션에 따라 패키지의 매뉴얼이 있습니다.
설정하는 명령줄 메일 패키지
모든 메일 패키지내 튜토리얼을 통해 사용할 수 있는 데비안의 고급 패키지 관리자에서 설치 단계는 아래의 예제에서 사용할 수 있습에 대한 모든 전시되어있습니다.,
이러한 소프트웨어에 의해 설치 될 수있다 다른 기본 패키지 관리자와 같은yum
또는dnf
에 따라 리눅스 배포합니다.
대부분의 경우sendmail
또는postfix
는 각 Linux 배포판에서 사용할 수 있습니다. 어느 쪽이든 나는 운이 없거나 다른 사람들이 틀렸지 만 수동으로 하나를 설치해야했습니다. 그러나,당신은 확실히 이메일 배달을 위해 그들 중 하나가 필요합니다.,
SSMTP 패키지로 Sendmail 설정
sendmail
및 SSMTP 패키지로 계속하겠습니다. SSMTP 담고 있는sendmail
패키지 후드로 당신이 그것을 용이하게 구성은 매우 어렵sendmail
지 않습니다.
1 단계., 체크인 경우 명령 라인 메일 패키지가 설치된
유형에 우편물 패키지의 이름만 방식으로 명령을 실행하는 경우 사용할 수 있다.
-
경우 패키지가 설치되어 명령이 실행 프롬프트가 변화하는 동안 명령을 실행하고 당신이 볼 수 깜박이는 커서를 다음 메시지
Recipient names must be specified
의 경우에는sendmail
. 결론:패키지가 설치됩니다., -
경우 패키지가 설치되어 있지 않은 경고 메시지가 표시고 제안 그것을 설치하는 방법
이 예에서 나는 시도는 경우에는sendmail
명령을 사용할 수 있습니다. SSMTP 패키지를 추가 한 후,이 명령과ssmtp
명령은 모두 작동하고 터미널에서 명령 프롬프트를 변경합니다. 그 살펴 보자!
2 단계., 설치 Sendmail Command Line 메일 패키지
터미널 출력을 제안,우리 실행에 필요한 고급 패키지 관리자의 설치를 명령으로 루트 권한을 설치하는 데 필요한 패키지입니다. 앞서 언급했듯이 구성의 복잡성을 추상화하면sendmail
에 대해 구성이 훨씬 간단합니다. 즉,SSMTP:
sudo apt install ssmtp
3 단계로 수행 할 수 있습니다. 설치 확인
설치가 완료된 후sendmail
메시지를 전달할 수 있는지 확인할 수 있습니다., 유형 아래 코드에서는 터미널:
echo "Subject: hello" | sendmail [email protected]
어야 메일을 보내면 모든 것이 제대로 작동합니다. 여기에는"hello"
문자열 파이프sendmail
명령의 대상이 될 것이라고 보낸 메시지는 동안,정의 이메일 주소를 자연스럽게 받는 사람 이메일입니다.
당신은 명령을 실행합니다… 그리고,죄송합니다:sendmail: Cannot open mailhub:25
. 그 이유는 mailhub 설정을 전혀 제공하지 않았기 때문입니다. 메시지를 전달하려면 구성된 SMTP 서버가 필요합니다., SSMTP 정말 잘 수행하는 곳이다:당신은 단지 한 번 구성 파일을 편집 할 필요가,당신은 갈 좋다.
4 단계. SSMTP 구성
/etc/ssmtp/ssmtp.conf
에서 설정 파일을 찾아 보겠습니다. 여기에서,당신은 당신을 넣어 아래 코드를 구성하 SMTP 릴레이:
이것은 당신이 설정한 외부 서비스는 것이 실제로는 앞으로
이용할 수 있습니다. 예를 들어 Gmail 에 자격 증명을 제공하면 터미널에서 보낸 메시지가 사서함의’보낸 메일’디렉토리에 표시됩니다. 구성은 다른 서비스와도 비슷합니다.,
이것은sendmail
의 기본 구성과 자주 사용되는 명령 줄 메일러 패키지의 설치 단계였습니다. 다음으로,우리는 다양한 다른 패키지를 설치하고 시도하는 것에 뛰어들 것입니다.
보내는 이메일을 사용하여 SSMTP 명령
이것은 좋은 작은 도구를 우리는 그 구성에 대한 메일을 배달합니다. 으로man
페이지에서 알 수 있듯이,그것은 최소한의 에뮬레이터의sendmail
. 따라서 SSMTP 를 사용하면 Linux 명령 줄에서 SMTP 서버를 통해 이메일을 전송할 수 있습니다., 그것은 적절한 구성 파일과 mailhub 에 연결하는 수단을 제공합니다. 설정 파일이 올바르게 설정 되었다면 명령 줄 이메일 전송과 관련된 모든 걱정이 사라질 수 있습니다.
의 기본 구현 SSTMP 명령:
경우에 당신은 단지 사용 SSMTP 명령은 다음과 같이 표시되어야 합니다.
ssmtp [email protected] < mail.txt
다음과 같은ssmtp
명령을 받는 사람 주소,다음을 포함할 수 있는 파일에 표시됩니다. 여기에서 메시지에 대한 헤더를 정의하고 추가 수신자를 나열하고 콘텐츠 유형을 설정할 수 있습니다., 이 방법으로 HTML 이메일을 보낼 수 있습니다. SSMTP 는 귀하의 메시지를 해석하고 제공된 값을 적절하게 사용합니다. 다음은 보낼 수있는 HTML 의 예입니다.
최소한의 디자인으로 존중되지 않으므로 SSMTP 로 추가 옵션을 제공 할 수 없습니다.Gmail 은 ssmtp 를 안전한 응용 프로그램으로 취급하지 않기 때문에 가능성이 높습니다. 이 오류가 발생하면,당신은 필요한 설정을 변경하는 Gmail 계정에서–당신이 볼 수 있는 더 많은 정보에 잠재적인 위험이 있을 뿐입니다.,
보내는 이메일을 사용하여 Sendmail Command
꽤 오랫동안 지금 sendmail 은 고전적인 메일 전송 에이전트의 세계에서 유닉스. 그것은 1979 년에 처음 소개되었으며 고도로 구성 가능한 성격과 확장 성으로 인해 서버 관리자의 기본 이동이되었습니다.,
우리는 이미 볼 수 있는 방법을 보내는 기본적인 이메일에 의해ssmtp
명령을 실행,그래서 그의 차이를 사용하는sendmail
echo "Subject: hello" | sendmail -v [email protected] < mail.txt
에 던진-v
인수 는 커뮤니케이션 사이에는 메일 서버 및 메일 전송 에이전트 볼 수 있습니다.
자신의 메일 서버를 설정하고 그것에 sendmail 을 구현하는 경우 사용할 수있는 구성이 많이 있습니다. 그러나이 기사의 범위를 벗어났습니다. 우리는 곧 하나의 주제로 돌아갑니다. 계속 지켜봐주십시오.,
보내는 이메일을 사용하여 컬 명령
이 도구는 대단히 일반적인 데이터 전송에 대해서는 서버입니다. HTTP,FTP,POP3 또는 SMTP 와 같은 많은 프로토콜을 지원합니다. 컬 패키지 널리 사용되는,전 세계 주요 이유 중 하나는 기본 PHP 구현 및 PHP 기본값으로 서버 사이드 스크립트 언어이다.패키지가 이미 설치되어 있는지 확인하십시오., 하지 않으면 실행하여 아래
sudo apt install curl
이 완료되면,당신은에 액세스할 수수에 대한 사용할 수 있는 옵션 컬 실행하여curl -h
. 더 자세한 버전에서 액세스할 수 있는 하나man curl
또는curl --manual
. 을 얻을하려는 경우에 깊이 있는 지식을 사용하여 컬이 편리한 전자 책을 포함하는 모든 것을 당신이 이제까지 알고 싶어요.
curl 과 함께 보내는 전자 메일의 기본 구현:
CURL 과 함께 전자 메일을 보내려면 SMTP 연결을 설정해야합니다., 대부분의 경우 Google 또는 Yahoo 의 발신 메일 서버는 SMTP 로 보내는 전자 메일을 테스트하는 데 사용됩니다. Gmail 설정에서 덜 안전한 앱에 대한 액세스를 설정해야하며 유사한 추가 보안 설정이 Yahoo 에도 적용될 수 있습니다.
터미널에서 명령을 조각을 위에--url
및--user
매개 변수를 정의 SMTP 연결 설정. --user
매개 변수의 암호 섹션은 지정된 이메일 주소에 대한 계정의 암호입니다. 당연히 클라우드 이메일 서비스 제공 업체를 사용할 수도 있습니다., 다음 섹션에서 Mailgun 을 사용하는 것을 보여줄 것입니다.
고급 구현에 대한 이메일을 보내는 컬:
작동으로 이메일 전송 플랫폼은 당신이 첫 번째를 얻기 위해 필요 API 키입니다. 이 튜토리얼에서 보여 드리겠 컬 이메일로 보내 사용하여 예를 들어 Mailgun,그래서 만약 당신이 갇혀있는 동안 등록 프로세스에 따라 설치 가이드에 얻을 수있다.
구문은 매우 간단합니다. 이전에 눈치 챘을 지 모르지만 명령의 각 줄을\
문자로 끝내야합니다., 이 줄 연속 문자입니다,명령뿐만 아니라 한 줄에 그들 모두없이 실행할 수 있습니다. 기억해야 할 다른 것은-F
옵션입니다. 발췌에서 남자 페이지:
-F, --form <name=content> (HTTP) This lets curl emulate a filled-in form in which a user has pressed the submit button. This causes curl to POST data using the Content-Type multipart/form-data according to RFC 2388. This enables uploading of binary files etc. To force the 'content' part to be a file, prefix the file name with an @sign.
로 격려하기 전에,그것은 좋은 연습으로 다이빙을 설명서 사용하는 경우 이러한 명령 라인 메일러 명령입니다. 컬 매뉴얼이 말했듯이,기본적으로 보낼 양식을 만들고 있습니다. 각 줄은name=content
쌍으로 주어진 항목입니다. 로컬 컴퓨터에서 파일을 첨부 할 때 파일 이름 앞에@
가 필요합니다.,
이것은 어떻게 이메일을 전달했처럼 보입니다:
할 수 있을 사용하여 동일한 대부분의 다른 이메일 전송 플랫폼은 다음과 같 Sendgrid 에 대한 예입니다.
발송 HTML 이메일 명령행에서 컬:
에 적용할 수 있습니다 같은 논리로는 건물의 형태에서 텍스트 파일을 전송할 수 있습니 HTML 쉽게 메시지:
를 실행하는 경우 간단한 명령을 처음부터 예입니다…
문제 해결:
이 필요할 수 있습니다--insecure
스위치할 수있는 컬 수행하는”안전하지 않은”SSL 연결 및 전송합니다., 컬 오류 메시지를 반환합니다면 원격 서버에 사용되는 자체 서명된 인증서 또는 원격 서버에서 인증서가 서명되지 않에 의해 캘리포니아에 나와 캘리포니아 cert 파일입니다.
보내는 이메일을 사용하여 Swaks 명령
으로 그들의 문서화국,Swaks 유연한 스트립트,거래 지향 SMTP 테스트 도구입니다. TLS,인증 및 파이프 라이닝과 같은 SMTP 기능과 확장 및 SMTP 프로토콜의 여러 버전을 처리 할 수 있습니다. 또한 유닉스 도메인 소켓,인터넷 도메인 소켓 및 생성 된 프로세스에 대한 파이프를 포함한 여러 전송 방법을 지원합니다.,
설치:
sudo apt install swaks
기본적인 구현을 이메일로 보내 Swaks:
에 연결하기 위해 SMTP 계정보를 제공해야 합 server-s
사용자는-au
, 암호를-ap
주소-t
(당신이 원하는 곳에 보내는 메일)플래그가 있습니다. 포트587
에 연결하는 경우-tls
플래그도 중요합니다.,
swaks --to [email protected] -s smtp.gmail.com:587 -tls -au <user-account> -ap <account-password>
자격 증명할 수도 있습을 통해 제공되는 명령행 프롬프트를 지정할 경우 인증을-a
지 채우에는 사용자와 비밀번호를 명령행 옵션을 사용한다.
고급 구현을 위해 이메일로 보내 Swaks:
swaks --to [email protected] -s smtp.gmail.com:587 -tls -au <user-account> -ap <account-password> --attach -d ./mail.txt
는 다른 옵션이 있지 않습 touch now. 우리의 다음 메일러 패키지로 향하자!
보내는 이메일을 사용하여 똥개는 명령
Mutt 이전과 다른 이메일 클라이언트,그것은 풍부한 기능의 명령인 이메일 클라이언트입니다., Linux 터미널에서 이메일을 읽거나 로컬 사용자 사서함에 연결하거나 POP/IMAP 서버에 연결하는 데 사용할 수 있습니다. Mutt 지원하는 여러 가지함 등의 형식으로 mbox,MH,커서 테마 파일,MMDF,전체의 제어 메시지가 머리글 중에 이메일을 구성하고 여러 메시지 태그 및 색상 메시지를 처리합니다.
설치:
sudo apt install mutt
기본적인 구현을 이메일로 보내는 mutt:
이 시간에 당신은 놀라지 않을 것으로의 구조는 명령입니다., 을 제공할 수 있습 빈 메시지를 몸으로< /dev/null
# mutt -s "Test Email" [email protected] < /dev/null
고급 구현을 위해 이메일로 보내는 mutt:
를 보내는 이메일의 첨부 파일을 포함해야 합-a
플래그입니다. 이렇게하면 시스템 로그와 같은 유용한 파일을 지정된 주소로 보낼 수 있습니다.
# mutt -s "System logs" -a /opt/backup.sql [email protected] < /dev/null
보낼 수도 있습니다 HTML 이메일 경우 파일 확장자를 추가하는 메시지 본문에서는 HTML 형식으로 제공됩니다., Mutt 이 파일 형식을 인식하고 그것을 해결하지 않습니다 그래서 보내 HTML 일반 텍스트로.
mutt -s "Email subject" [email protected] < email.html
이 그것을 이메일로 보내는 mutt. 이 있는 경우 그것은 기계에서 나는 시도하는 것이 좋습니다 당신이 어떻게 작업할 수 있으로 들어오는 구성함과 처리를 들어오는 메시지입니다. 그렇게한다면 아래의 코멘트 섹션에서 의견을 공유하십시오. 튜토리얼에 표시된 패키지에 대한 모든 의견을 환영합니다.
Mailx 명령을 사용하여 전자 메일 보내기
Mailutils 는 여러 사용 사례에 대한 복합 패키지입니다., 일반 사용자,시스템 관리자 및 개발자에게 서비스를 제공하도록 설계되었습니다. 이메일 전달에 관한 기본 기능 만 살펴 보겠습니다. 더 많은 기능에 관심이 있으시면man
페이지를 확인하십시오.
설치:
sudo apt install mailutils
기본적인 구현을 이메일로 보내 mailx:
mailx 패키지에는 2 개의 동일한 명령문(mail
및mailx
모두 작업에서 동일한 방식으로)., 가장 단순한 명령으로 구성mail/mailx
명령 주소가 메일을 보내지만,당신은 아마 제목을 포함하고 적어도 일부를 텍스트 기반의 메시지 본문입니다. 이러한 명령이 다음과 같이 보여야 합니다.
echo "message body" | mail -s "subject" [email protected]
를 사용하여echo
명령이 및 파이프에 출력을mail
명령을 피할 수 있습니다 mailx 의 추가적인 메시지를 참조 주소와 메시지 본문입니다.,
mailx 로 보내는 전자 메일을위한 고급 구현:
고급 예제의 경우 본격적인 HTML 전자 메일을 다시 보내드립니다. 우리가 선택한 이메일 HTML 파일에<
문자를 제공하고 콘텐츠 유형과 함께”추가 플래그”를 추가해야합니다. 전체 코드의 모양은 다음과 같습니다.
mailx -a 'Content-Type: text/html' -s "This is advanced mailx indeed!" < email.html "[email protected], [email protected]"
설정할 수도 있습니다 반환 주소를 가진--return-address=<EMAIL-ADDRESS>
는 유용할 수 있습니다., 또 다른 유용한 옵션을 내가 해결할 수 없는 함께 작동하 HTML 이메일 병렬을 제공하는 첨부파일에서 동일한 메시지:-A "mail.txt"
. 여러 수신자를 나열할 수 있지만 단일 첨부 파일만 첨부할 수 있습니다. 그게 당신을 좋아하면 외부 SMTP 서버를 구성 할 수 있습니다.
텔넷 대체 Openssl 명령을 사용하여
텔넷은 다른 호스트와의 통신을위한 대화 형 통신 프로토콜입니다. 다른 서버에 SMTP 연결을 열고 전자 메일 메시지를 전송하는 데 사용할 수 있습니다., 그러나 프로토콜이 보안되지 않으므로 대부분의 서버는이 통신 유형을 거부합니다. 이것은 OPENSSL 이 포함 된 SSL/TLS 보안으로 구축 된 것처럼 그림에 나오는 곳입니다. 그것은 호출 마찬가지로 텔넷 호스트와 함께 인수를,그리고 수행하는 열린 명령을 암시적으로.
I 들여 입을 제공해야 하는 통신 채널은 열려 있습니다. 이러한 입력은 자체 설명이지만 자세히 설명해야 할 한 가지는 암호 해시입니다. 다음 명령으로 얻을 수있는 base64 인코딩 해시 일 수 있습니다.echo -en '\[email protected]\000gmailpassword' | base64
., 문자열의 이스케이프 문자는 생략 할 수 없습니다. Base64 패키지가 설치되어 있지 않으면 패키지 관리자를 통해 사용할 수 있습니다.위에서 볼 수 있듯이이 이메일 전송 수단은 텍스트 기반 메시지에 대한 인터페이스 만 제공하므로 사용 사례에 제한이 있습니다. 반면에 메일 서버와 교환 된 모든 정보를 보여 주므로 디버깅이 정말 쉽습니다.
문제 해결 메일 문제
을 확인 메일에 로그
를 찾을 필요 로그 파일을 탐색하여 해당 폴더에 있습니다. 내 코드 편집기를 사용하는 것을 선호합니다(예:., 숭고한 텍스트)이를 위해서 내가 있을 수 있으로 로그를 구문 강조 표시:
$ sudo subl /var/log
에 따라 현재 리눅스 배포할 필요가 있습을 보면서 서로 다른 소스입니다.
로그에는 배달 가능성 문제에 대한 유용한 정보가 포함될 수 있습니다. 이 시점에서 맨 아래로 스크롤 할 때
배달이 성공했는지 검사하거나 프로세스가 실패한 이유를 이해할 수 있습니다.,
이것은 일어날 수 있다는 당신의 콘솔을 보여줍 오류 없음,그러나 메일에서 로그는 당신이 볼 수있는 메시지를 대기로 배달,그렇지 않은 중단 컴퓨터에만 아마 거부되었는 메일 서버에서 당신이 시도하고 있었습니다.
시퀀스에서 모든 명령을 실행
그래서,모든 것이 최종 테스트 준비가되었습니다. 모든 메일러 터미널 명령은 스크립트 파일에 여기에 모여 있습니다. 일단 당신이 다운로드 작업 폴더 스크립트 파일로 이동을 포함하는 폴더를 만드 스크립트를 실행 가능:chmod u+x mail.sh
., 내가 제공 한 모든 파일이 준비되어있는 경우 자습서에 표시된 메일러 명령 테스트를 시작할 수 있습니다. 코드의 테스트 이메일 주소로"<RECIPIENT ADDRESS>"
를 교체하고 명령 행에서./mail.sh
를 실행하면됩니다.
스크립트가 실행을 마치면받은 편지함에 테스트 이메일이 채워집니다.
잘 했어!
요약
이 기사에서는 Linux 명령 줄에서 이메일을 보내는 여러 가지 방법을 보여주었습니다. 바라건대,당신이 본 것을 기반으로,당신은뿐만 아니라 자신의 컴퓨터에 이러한 서비스를 설치하고 구성 할 수 있습니다.,
포스트 보여 가장 일반적으로 사용되는 명령 라인 패키지 및 우편물을 보내는 방법을 이메일로,그리고 결국 만들고,쉘 스크립트를 수집하는 모든 명령에 사용되는 문서입니다. 다운로드할 수 있는 프로젝트 작업 파일에 여기에,그리고 설치하는 경우 패키지를 도입하는 튜토리얼에서도 사용자 자격 증명을 입력하고 받는 사람 세부 정보,스크립트를 실행할 수 있습니다.피>