Linux“mail”명령을 사용할 때 메일은 실제로 어떻게 전송됩니까?


17

다음 mail과 같이 Linux 터미널에서 명령을 사용할 때 이메일을 보내는 데 사용되는 이메일 계정 :

echo "Body of email" | mail -s "Subject" abc@def.com

이메일을 보내지 않는 경우 보내는 이메일 주소의 사용자 이름과 비밀번호를 지정해야합니까? mail내가 읽은 모든 자습서는 발신자 주소에 대해 아무것도 지정하지 않습니다.

편집 : "원격 도메인으로 메일 발송이 지원되지 않음"효과로 인해 오류 메시지가 표시되면 ISP가 이메일 전송을 차단 했습니까? 이 주위에 어떤 방법이 있습니까? 감사.

답변:


12

다음과 같이 Linux 터미널에서 mail 명령을 사용할 때 이메일을 보내는 데 사용되는 이메일 계정 :

기본 구성에서는 로그인시 사용한 것과 동일한 계정입니다. 컴퓨터에는 MTA (메일 서버 프로그램)가 설치되어 있습니다. 보통 Postfix 또는 Exim4, 때로는 Sendmail 또는 qmail.

이 계정의 이메일 주소는 또는입니다 . 여기서 FQDN을 얻을 수 있습니다 . 그러나 MTA가 "로컬 메일 전용"(아래 오류 메시지에서 알 수 있듯이)으로 구성되어 있으며 외부에서 온 메시지를받지 않기 때문에 현재이 계정으로 메일 받을 수 없습니다 .your-login@hostnameyour-login@fqdnhostname -f

편집 : "원격 도메인으로 메일 발송이 지원되지 않음"효과로 인해 오류 메시지가 표시되면 ISP가 이메일 전송을 차단 했습니까? 이 주위에 어떤 방법이 있습니까?

아니; 이 오류 메시지는 자신의 컴퓨터에서 반환됩니다. 메일 서버는 한 사용자에서 다른 사용자로 (일반적으로 cronjob이 실패하면 cron 데몬 에서) 로컬 메일 만 전송하도록 구성됩니다 . 일반적으로 이러한 메시지에 가서 읽을 사용하고 , , , 또는 유사한 프로그램. (IIRC, Thunderbird는 로컬 메일 스풀도 가져올 수있었습니다.)/var/mail/loginmailmuttre-alpine

다른 사이트와 메일을주고 받도록 메일 서버를 재구성하는 것은 어렵지 않습니다. 설치된 MTA 및 Linux 배포판에 따라 단일 명령으로도 충분할 수 있습니다 (예 : dpkg-reconfigure postfix시스템이 Postfix가있는 Debian 인 경우).

그러나 개인용 컴퓨터에서이 계정을 사용하고 있다고 생각하므로 외부 메일 계정 (예 : Gmail 주소가있는 경우)을 대신 사용하는 것이 좋습니다. 어떤 MTA가 설치되어 있는지 확인한 후 (Ubuntu / Debian에서 dpkg -S /usr/sbin/sendmail알려줄 것임) google을 program-name relay gmail학습하려면 " "를 검색하십시오.

또는 릴레이 용으로 특별히 설계된 MTA를 설치하십시오. msmtp그리고 esmtp좋은 선택하고 쉽게 구성 할 수 있습니다.


모든 도움에 감사드립니다. 당신이 제안한 pastebin 명령은 결국 내 요구를 충족시켰다. 메일 릴레이를위한 스마트 호스트 설정 작업을합니다.
user001

4

보내는 사용자의 계정 이름 및 호스트 이름입니다 (예 :) root@myserver. 외부에서 전자 메일을받을 수있는 실제 사서함 일 필요는 없습니다.


2
@ user001합니까 도움을?
Daniel Beck

2
@ user001 : 이러한 경우 pastebins를 살펴볼 수 있으며 ,이 중 일부는 명령 행에서 사용하기 쉽습니다. 예를 들면 다음과 같습니다 curl -Fsprunge=\<- http://sprunge.us < myfile.
user1686

1
@ user001 : exim4데몬이 실행 중입니까? sudo mailq메시지를 나열 합니까 ? 발신 서버 ( /var/log/exim4/mainlog) 및 수신자 (가능한 경우) 의 로그를 확인 했습니까 ?
user1686

1
@ user001 : ISP가 연결을 차단하고있을 수 있습니다. 감염된 PC에서 전송되는 대량의 스팸을 줄이기 위해 포트 25의 모든 항목이 삭제됩니다. (여전히 다른 포트와 SMTP 인증을 사용하는 릴레이 를 구성 할 수 있습니다 .)
user1686

1
@ user001 : 릴레이는 다른 메일 서버 ( "스마트 호스트"라고도 함)를 통해 발생 합니다 . 아카데미에 자체 메일 도메인이있는 경우 네트워크 관리자가 도움을 줄 수 있습니다. 그렇지 않은 경우 서버를 Gmail 또는 유사한 사서함에서 보내도록 구성 할 수 있습니다. 튜토리얼은 여기에 있습니다 .
user1686

4

mail 명령은 현재 계정으로 메일을 보냅니다 (예 : username @ domain; 그러나 일반적으로 인터넷 서비스 제공 업체는 사용자가 스팸을 피하기 위해 관련 포트를 차단하여 자신의 메일 서버를 실행하지 못하도록하여 전자 메일이 전송되지 않습니다.

그러나 전송 문제는 컴퓨터 구성과 관련이있을 수도 있습니다.

편집 : 메일이 예를 들어 gmail 등의 이메일을 보내도록 설정 ~ / .mailrc 파일에 다음 정보를 입력하십시오.이 파일은 기본 구성을 메일로 제공합니다. 그러나 chmod 600 ~ / .mailrc를 사용하여이 파일에 액세스 할 수 있는지 확인하십시오.

account gmail {
set smtp-use-starttls
set ssl-verify=ignore
set smtp=smtp.gmail.com:587
#set smtp-auth=login
set smtp-auth-user=name@gmail.com
set smtp-auth-password=pass
set from=name@gmail.com
}

이 경우 이메일은 "name@gmail.com"에서 발송됩니다.


@ user001 : 메일을 보내거나 (예 : 스크립트에서) 메일을 받길 원하십니까?
Karolos

스크립트에서 메시지를 보낼 수 있습니다. 감사.
user001

2
mailrc구문은에만 적용됩니다 heirloom-mailx. 일부 시스템에는 GNU mailutils또는 BSD 가 제공 될 수 있으며 mailx, 둘 다 구문 오류에 대해 불평합니다. (그렇게되면, 내가 설치 제안 heirloom-mailx- 또는 더 나은, mutt또는 re-alpine.)
user1686

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.