Como enviar email com meu servidor CentOS?

21

Acabei de criar um servidor doméstico modesto usando o CentOS 5.5. Eu quero que o servidor seja capaz de enviar e-mails para minha conta do Gmail ou outras contas de e-mail para várias coisas, como tarefas do cron. Também seria bom poder enviar e-mail através de aplicações PHP que eu corro / desenvolvo no servidor também. Ou até mesmo ser capaz de o servidor enviar e-mails por meio do comando mail.

Eu sei que há um milhão de resultados de pesquisa do Google sobre como configurar seu servidor Linux como servidor de e-mail ou como configurar o sendmail etc. Mas eles não parecem ser o que eu estou procurando ... pelo menos eu não pense assim. Eu não estou tentando configurar algum servidor corporativo que outros clientes podem se conectar para enviar e-mails ou qualquer coisa complicada como essa.

Eu só quero que o meu servidor me envie e-mails sobre coisas. Parece que deve ser simples ... Alguém pode me apontar na direção certa?

UPDATE

Por uma solicitação de usuários abaixo, tentei este comando:

/bin/mail -s "My Subject" "[email protected]" < /home/john/test

Nenhum erro ou qualquer coisa. Mas o email nunca apareceu na minha caixa de entrada. Aqui está o meu maillog

Oct 27 00:52:19 localhost sendmail[13702]: o9R6qJhU013702: from=root, size=10906, class=0, nrcpts=1, msgid=<[email protected]>, relay=root@localhost
Oct 27 00:52:19 localhost sendmail[13703]: o9R6qJOd013703: from=<[email protected]>, size=11209, class=0, nrcpts=1, msgid=<[email protected]>, proto=ESMTP, daemon=MTA, relay=localhost.localdomain [127.0.0.1]
Oct 27 00:52:19 localhost sendmail[13702]: o9R6qJhU013702: [email protected], ctladdr=root (0/0), delay=00:00:00, xdelay=00:00:00, mailer=relay, pri=40906, relay=[127.0.0.1] [127.0.0.1], dsn=2.0.0, stat=Sent (o9R6qJOd013703 Message accepted for delivery)

Alguma pista?

    
por Jake Wilson 25.10.2010 / 06:32

8 respostas

13

/bin/mail -s "Enter Subject Line here" -a %código% %código% /home/.../whateverFileYouWantAttached

tente o comando acima:)

    
por 25.10.2010 / 08:14
6

Resposta simples:

Configure o sendmail . Isso dependerá da sua distribuição, mas isso não é nada difícil. Se você tiver alguma pergunta específica, pergunte.

Resposta complicada:

Se você está perguntando isso, você provavelmente não deve simplesmente pular a arma e configurar o sendmail justtt ainda.

Você precisará levar algumas coisas em consideração:

  1. O seu ISP permite enviar e-mail? Você pode estar em uma faixa de IPs que não são de servidor e, portanto, muitos provedores de e-mail bloquearão sua franquia.

  2. Qual endereço você usará como seu endereço? Você está autorizado a enviar a partir deste endereço (SPF, DomainKeys, etc)? Se não, suas mensagens podem ser detectadas como spam por provedores de e-mail - e com razão.

  3. Por último, mas certamente não menos importante: você realmente precisa usar seu próprio serviço SMTP? Qualquer motivo pelo qual usar o seu ISP não é bom o suficiente?

De volta aos dias, a configuração de um servidor SMTP não era grande coisa. Hoje em dia, a configuração pode ser mais fácil, mas configurá-la para que, de fato, receba mensagens nas caixas de correio das pessoas , é um desafio.

    
por 25.10.2010 / 07:35
3

Posso confirmar que nenhuma das sugestões acima está funcionando no meu sistema CentOS em casa - nem uma única. O que é chato!

Então, tentei o mesmo em uma nova instância do Amazon executando o CentOS 6.4 e, mesmo com a configuração padrão, posso enviar e-mails sem problemas. Tudo o que eu tinha que fazer era

yum install mailx

após o qual o envio de e-mails, conforme descrito acima, funciona como um encanto. Instalar complicações como o sendmail NÃO é necessário para o que o Jakub está tentando fazer.

Deve ser alguma configuração com o meu ISP, já que não tenho um firewall configurável no meu lado aqui.

    
por 15.05.2013 / 07:59
2

Você precisa fazer o seguinte:

  1. sudo yum install postfix telnet mailx
  2. sudo /etc/init.d/postfix start
  3. sudo vi /etc/postfix/main.cf
  4. Alterar mydestination = mydomain.com, localhost.mydomain.com, localhost

    para

    mydestination = localhost.mydomain.com, localhost

Teste usando o seguinte na linha de comando

  1. mail [email protected] Assunto:
  2. Testar e-mail do teste de demoslice.com
  3. corpo do email.
  4. .

Não. 4 - há apenas um ponto final para completar o corpo do email. Você agora deve ter correio.

Acima você obterá um MTA (Mail Transfer Agent) em funcionamento. Alguns recursos que o ajudarão com uma configuração mais avançada podem ser encontrados nos artigos do slicehost sobre configuração de e-mail para o CentOS (role para baixo até o CentOS e a seção Email). Você deve realmente considerar configurar o seguinte corretamente: hostname, RDNS (DNS reverso) e SPF (Sender Policy Framework) registra com seu provedor DNS.

    
por 25.10.2010 / 11:28
1

Você modificou seu /etc/mail.rc para definir o endereço SMTP?

    
por 30.11.2010 / 14:57
0

Tente instalar o postfix & defina o mydestination no arquivo de configuração, mesmo que ele deva funcionar com o sendmail.

    
por 25.10.2010 / 07:47
0

O postfix está no caminho certo, mas, a menos que o Gmail considere que você é pelo menos remotamente legítimo (por exemplo, "Você não é um spammer"), é bem improvável que o seu e-mail seja entregue.

O processo está um pouco envolvido para postar aqui, mas a maneira mais simples que encontrei de conseguir isso (e ter seu e-mail entregue) é configurar o postfix como retransmissão, usando sua própria conta do Gmail como transporte.

O processo que uso é detalhado aqui:

link

Não é necessário configurar certs auto-assinados (de acordo com o sendmail) e, na minha experiência, isso simplesmente funciona!

    
por 17.01.2013 / 17:01
0

A solução fácil não é o sendmail, mas o sendEmail:

link

Um script perl que é facilmente configurado para enviar através de qualquer servidor SMTP que você possa acessar - eu o uso para enviar contas do Gmail o tempo todo, mas também funciona para SMTP comum sobre TCP na porta 25, etc. / p>

Geralmente, eu envolvo o script sendEmail perl com meu próprio shell script para o Gmail:

#!/bin/bash

# Send gmail through an account specified in ~/.sendGmailAuthFile (or file identified with -k.)
# The auth file must have values for the -f (from@domain) and -xp (password) options of sendEmail,
# structured as:
#
#    [email protected]
#    pwd=xxxxxxx
#
# We will fill in the rest, and other params are passed through to sendEmail
#
# Example: sendGmail -u "My subject line" -t "[email protected]" < message.txt

function sendGmailImmed {
        local authFile="$HOME/.sendGmailAuthFile"
        for arg in "$@"; do
                if [[ "$arg" == "-k" ]]; then
                        shift
                        authFile="$1"
                        shift
                fi
        done
        initAuthFile $authFile
        source $authFile

        sendEmail -f $user -xu $user -xp $pwd -s smtp.gmail.com:587 -o tls=yes "$@"
}

function initAuthFile {
        # If the authfile doesn't exist, we'll create a dummy:
        if [[ ! -f $1 ]]; then
                echo "# sendGmail authentication file: " > $1
                echo "[email protected]" >> $1
                echo "pwd=my-password" >> $1
                echo "A shell auth file has been created as $1"
        fi
}

if [[ -z $sourceMe ]]; then
        sendGmailImmed "$@"
fi
    
por 15.08.2013 / 23:17