Não é possível usar o / etc / aliases para alimentar emails de entrada para um programa personalizado

1

No meu Mac, isso é o que eu segui:

  1. A seguir está o arquivo ruby com o qual estou testando. Isso é capaz de ler a partir de STDIN e escrever em um arquivo sample.mail:

    #!/usr/bin/env ruby
    
     while line = STDIN.gets    
         f = File.open("/Users/username/sample.mail", "a+")    
         f.puts line    
         f.close    
     end
    
  2. Editou /etc/aliases e adicionou esta linha:

    username: "|/Users/username/stdinpipe.rb"
    
  3. Editou /etc/postfix/main.cf e adicionou esta linha

    allow_mail_to_commands = alias,forward,include
    
  4. Usou sudo newaliases para sondar as alterações.

Agora, neste momento, estou esperando que, quando eu enviar um email para username @ localhost, ele seja anexado a /Users/username/sample.mail .

Mas isso não está acontecendo.

Onde eu fiz de errado?

    
por intellidiot 27.06.2011 / 13:31

2 respostas

2

Por padrão, o postfix no OS X não possui nenhum alias_maps especificado. Você precisa ter certeza de que esta linha não está comentada em main.cf:

alias_maps = hash:/etc/aliases

Além disso, o script deve ser executável pelo usuário _postfix. O arquivo que você deseja gravar deve ser de propriedade e gravável pelo usuário _postfix

Depois que estes forem corrigidos, você precisa recarregar o postfix: sudo postfix reload

    
por 27.06.2011 / 17:14
0

Você provavelmente precisará garantir que o script seja executado como executável. Ou seja, execute chmod a + x no script. Além disso, sua linha de exemplo de apelido tem um capital "/ Users", que é não convencional e unix respeita maiúsculas e minúsculas em caminhos e arquivos (ao contrário das janelas), portanto, verifique se o case corresponde.

Se isso falhar, você pode substituir o "#! / usr / bin / env ruby" por "#! / usr / bin / ruby" (ou onde quer que seu ruby esteja localizado).

    
por 27.06.2011 / 16:15

Tags