/bin/mail -s "Enter Subject Line here" -a
%código%
%código%
/home/.../whateverFileYouWantAttached
tente o comando acima:)
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?
Configure o sendmail . Isso dependerá da sua distribuição, mas isso não é nada difícil. Se você tiver alguma pergunta específica, pergunte.
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:
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.
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.
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.
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.
Você precisa fazer o seguinte:
sudo yum install postfix telnet mailx
sudo /etc/init.d/postfix start
sudo vi /etc/postfix/main.cf
Alterar mydestination = mydomain.com, localhost.mydomain.com, localhost
para
mydestination = localhost.mydomain.com, localhost
Teste usando o seguinte na linha de comando
.
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.
Você modificou seu /etc/mail.rc para definir o endereço SMTP?
Tente instalar o postfix & defina o mydestination no arquivo de configuração, mesmo que ele deva funcionar com o sendmail.
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:
Não é necessário configurar certs auto-assinados (de acordo com o sendmail) e, na minha experiência, isso simplesmente funciona!
A solução fácil não é o sendmail, mas o sendEmail:
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