Need help? Chat now!

Hostwinds 튜토리얼

에 대한 검색 결과:


목차


smtp-cli는 무엇입니까?
전제 조건
설정
의존성
CentOS / Fedora
Ubuntu / Debian
SMTP-CLI 저장소를 다운로드하십시오
전자 메일 암호 파일을 만듭니다
smtp-cli로 메일 보내기
다음은 bash 스크립트의 코드 템플릿입니다.
그리고 여기에 전송 된 이메일이 있습니다
다른 유용한 smtp-cli 인수
문제 해결

smtp-cli를 사용하여 단순 메일 전송 에이전트를 만드는 방법 (Linux)

태그 : Email,  Linux 

smtp-cli는 무엇입니까?
전제 조건
설정
의존성
CentOS / Fedora
Ubuntu / Debian
SMTP-CLI 저장소를 다운로드하십시오
전자 메일 암호 파일을 만듭니다
smtp-cli로 메일 보내기
다음은 bash 스크립트의 코드 템플릿입니다.
그리고 여기에 전송 된 이메일이 있습니다
다른 유용한 smtp-cli 인수
문제 해결

smtp-cli는 무엇입니까?

SMTP-CLI가 무엇인지 더 잘 이해하기 위해 그렇지 않은 것에 대해 이야기 해 봅시다.SMTP-CLI는 전자 메일 서버 또는 릴레이 에이전트가 아닙니다.또한 높은 양의 우편물을 보낼 방법이 아닙니다.텍스트, HTML, 파일 및 그림을 명령 줄과 스크립트에서 보낼 수있는 전자 메일 클라이언트입니다.

다른 전자 메일 서버를 만드는 대신 SMTP-CLI를 사용하여 상태 또는 상태를 모니터링하기 위해 원격 전자 메일 계정을 통해 VPS에서 업데이트를 전송할 수 있습니다. 로그를 서버 보안 강화의 일부로 전달하기 위해 Cron 작업을 설정할 수도 있습니다. 오류가 발견되거나 제한이 접근하지 않으면 서버가 더 많거나 덜 무인을 실행할 수 있습니다.

전제 조건

  • 이메일 계정이있는 원격 이메일 서버
  • a VPS that requires mail to be sent outbound
  • 위 VPS에 대한 명령 줄 액세스 (SSH 또는 Get VNC를 통해)

설정

  • CentOS 7이 설치된 Hostwinds VPS 1 개
  • cPanel 이메일 계정
  • Putty SSH 클라이언트가 액세스에 사용됩니다.

의존성

Gitb에서 Git을 사용하여 GitHub에서 SMTP-CLI 스크립트를 잡을 것입니다. 아직 설치하지 않은 경우 다음과 같이 설치할 수 있습니다.

CentOS / Fedora

# yum install -y git

Ubuntu / Debian

# apt-get install -y git

SMTP-CLI 저장소를 다운로드하십시오

# git clone https://github.com/mludvig/smtp-cli.git

SMTP-CLI 스크립트 (실행 부분)는 SMTP-CLI라는 디렉토리 안에 있으며 SMTP-CLI라는 파일입니다 (명령의 -L 플래그가 파일 속성을보고 실행 파일).

# ls -l smtp-cli

"x"가 대신 "-"라면이 명령을 실행하여 파일을 실행 파일로 만듭니다.

# chmod +x smtp-cli/smtp-cli

이제 실행되는지 테스트 할 수 있습니다.

# smtp-cli/smtp-cli

다음과 같은 오류가 발생합니다.

오류가있는 것은 이상하지만 스크립트가 다운로드되고 실행 가능한지 테스트하는 것뿐이므로 지금 당장 필요한 모든 것입니다.

이제 전역 PATH (전체 경로없이 명령 줄에서 작업을 실행할 때 VPS가 확인하는 위치)를 확인합니다.

# echo $PATH

그리고 smtp-cli를 기본 PATH 내의 사용자 sbin 디렉터리에 복사합니다.

# cp smtp-cli/smpt-cli /usr/local/sbin
ls -l /usr/local/sbin/smtp*

이제 파일의 전체 경로를 포함하여 걱정하지 않고 VPS의 모든 디렉토리에서 SMTP-CLI를 실행할 수 있습니다.

전자 메일 암호 파일을 만듭니다

암호화되지 않은 암호를 스크립트에 배치하는 것은 어렵고 암호를 관리하는 방법이 아니므로 암호 정보가 포함 된 파일을 만듭니다. 이를 통해 우리는 암호를 쉽게 업데이트하고 악의적 인 배우가 정보를 찾아야 할 것입니다.

루트 사용자로 실행 중이고 루트 cronjob을 만드고 있기 때문에이 파일은 / root / 디렉토리에 있습니다. CRON 작업은 시스템 관리자가 부여한 권한에 따라 사용자가 CRONTAB에있을 수 있습니다.이 경우 / home / username에 저장할 수 있습니다.

# touch /root/.passwd
echo 'SomeRandomPassword' > /root/.passwd

"somerandompassword"는 원격 전자 메일 계정의 실제 전자 메일 암호의 일반 텍스트 여야합니다.

smtp-cli로 메일 보내기

이제 스크립트의 일부로 또는 명령 줄에서 이메일을 보내는 좋은 부분에 도달했습니다. vnstat 가이드의 일부로 만든 파일을 전송하여 테스트하겠습니다.

참고로 아래 $ (some command) 부분은 명령을 인라인으로 실행하고 해당 명령의 출력을 인수의 입력으로 사용할 수 있도록합니다.

# smtp-cli --verbose --server mail.emaildomain.TLD:587 --enable-auth --user smtp-cli_guide@emaildomain.TLD --pass $(cat /root/.passwd) --from smtp-cli_guide@emaildomain.TLD --to test2@emaildomain.TLD --subject VPS-stats --attach /var/www/html/vps_bandwidth_stats.png

이제 작동한다는 것을 알았으므로 bash 스크립트 또는 cron 작업에 명령을 넣을 수 있습니다.

다음은 bash 스크립트의 코드 템플릿입니다.

#!/etc/bash

smtp-cli --verbose --server mailservername.emaildomain.TLD:587 --enable-auth --user login-user@emaildomain.TLD --pass $(cat /root/.passwd) --from email_orinator@emaildomain.TLD --to email_destination@emaildomain.TLD --subject subject-line --attach /full/path/filename.tosend >> /path/to/logfile.log

그리고 여기에 전송 된 이메일이 있습니다

다른 유용한 smtp-cli 인수

--help
--body-plain=<text|filename>
--body-html=<text|filename>

이 예제는 스크립트 또는 cronjob을 설정하는 기능을 제공했지만이 간단한 메일러는 전역 변수 또는 다른 모니터링 스크립트에 대한 출력을 사용하여 메일을 보낼 수도 있습니다. 이러한 모든 도구는 정기적 인 간격 또는 트리거 이벤트를 기반으로 간단한 경고 또는 복잡한 진단 데이터를 이메일로 보낼 수 있습니다.

문제 해결

스크립트를 사용할 때 몇 가지 다른 문제가 발생할 수 있습니다. 첫 번째 문제는 메일 서버가 어떻게 인증되는지입니다. 전체 이메일 주소 또는 사용자 이름 만 입력합니까? 이것이 당신이 - 유저 인수 후에 필요한 것입니다. 이 예제에서는 전체 이메일 주소를 -User로 입력 할 수 있습니다. 일반적으로 서버에 사용하는 모든 자격 증명을 사용하십시오.

두 번째 문제 영역은 –from 필드입니다. 로그인중인 이메일 계정인지 확인하십시오. 관리하지 않는 계정에서는 메일을 보낼 수 없습니다.

세 번째는 -Server 필드의 서버 이름과 포트 선택입니다. 이 이름은 나가는 이메일 서버의 완전한 도메인 이름이어야합니다. SMTP 용 표준 포트는 25, 587, 465입니다.

마지막으로, -to 필드는 유효한 이메일 주소 여야하거나 결코 대상에 도달하지 않아야합니다.

작성자 Paul Schene  /  칠월 10, 2020