2014-06-17 4 views
1
내가 무슨 짓을

이 파일 들어오는 메일을 작성하는 정말 간단하여 메일에 대해 여러 개의 파일을 생성합니다내 스크립트를 여러 수신자

  1. mailbox_command = 경로를 /로가/mycript.py
  2. luser_relay = 알 수없는 추가, 알 수없는 = "| /path/to/myscript.py"를 별칭 파일에 추가하십시오.
  3. myscript.py는 stdin을 한 줄씩 읽고 파일에 줄을 씁니다.

이 라인은 모든 수신 메일, 사용자가 내 스크립트, 여부를 존재하는지 여부에 상관없이 리디렉션합니다. 내 스크립트는 stdin에서 데이터를 읽고 파일에 씁니다. 내 스크립트가 한 명의 수신자에게 메일을 받으면 하나의 파일을 만듭니다. 그러나 2 명의 수신자와 함께 수신하면 2 개의 파일을 생성합니다. 내가 원하는 것은 여전히 ​​1 파일을 만들어야한다는 것입니다. 나는 스크립트에 의해 생성 된 파일의 수를 수신자의 수와 관련이 없지만 수신 된 메시지의 수와 관련되게하고 싶다.

감사합니다,

+0

"내 스크립트가 하나의 수신자와 메일을 수신은 하나 개의 파일을 생성합니다.하지만이받는 사람과받는 경우,이 두 파일을 생성합니다. 내가 원하는 것은 여전히 ​​1 개 파일을 작성해야한다는 것입니다." -> 하나의 파일 만 작성하도록 스크립트를 변경하십시오. –

답변

0

당신은 파일을 전자 메일 수에 저장하거나 그냥 루비에서 이런 식으로 할 것

파일 이름

로 시대를 사용하여 각 파일을 저장할 수 있습니다.

# read from stdin, and save a timestamp filename 
IO.write Time.now.to_i.to_s,STDIN.read 
+0

죄송합니다. 좀 더 자세히 설명해 주실 수 있습니까? 나는 이해할 수 없었다. 감사. – Carlos

+0

당신의 대답은 다른 파일로 이메일을 보관하는 방법을 찾는 것입니다. 스크립트는 Time.now.to_i.to_s => "1403699657"과 같이 Epoch를 생성하는 Time.now.to_i 함수를 호출합니다. shoul은 파이썬에서와 같은 함수입니다. 그런 다음 파일에 씁니다. 예 : filename = "% s.eml"% Time.now.to_i.to_s –

+0

이제 각 메일 개인에 대해 mailbox_command가 실행되기 때문에 문제는 transport에 대한 mail_box 명령을 변경하는 것입니다. . 전송 파이프를 사용해야하며 각 수신자가 아닌 모든 대상이있는 피드에 플래그를 지정해야합니다. 후위에 –