Enviando e-mails com PHP, LAMPP e PostFix

9

Eu tenho tentado por 2 dias inteiros agora, e não consigo fazer a coisa mais simples funcionar.

O problema: Enviar e-mails do PHP para o meu endereço de e-mail não funciona

Eu tenho trabalhado com Windows e Sendmail (o Sendmail estava dentro do pacote XAMPP) antes e tudo estava OK. O pacote XAMPP (1.7.7) para Linux não possui o Sendmail integrado. Então, depois de pesquisar um pouco, descobri que o Postfix se encaixa melhor em um ambiente LAMPP.

O que tentei até agora:

Instalei o Postfix e queria configurá-lo para apenas usar o servidor smtp do meu provedor de e-mail particular (como aconteceu no Windows). Então, eu confoguei meu php.ini assim:

[mail function]
; For Win32 only.
;SMTP = localhost
;smtp_port = 25

; For Win32 only.
;sendmail_from = [email protected]

sendmail_path = /etc/postfix
mail.add_x_header = On

Note que eu comentei o material "Win32 only". O /etc/postfix/main.cf é o seguinte:

smtp_sasl_auth_enable = yes
smtp_sasl_security_options = noanonymous
smtp_sasl_password_maps = hash:/etc/postfix/sasl_password
myhostname = ubuntu
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
sender_canonical_maps = hash:/etc/postfix/sender_canonical
mydestination = ubuntu, localhost.localdomain, localhost
relayhost = mail.gmx.net
mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128
mailbox_size_limit = 0
recipient_delimiter = +
inet_interfaces = loopback-only

/ etc / aliases permanece inalterado:

# Required aliases
postmaster: root
MAILER-DAEMON:  postmaster

# Common aliases
abuse:      postmaster
spam:       postmaster

/ etc / postfix / sasl_password :

my.providers.smtp my_login:my_password

/ etc / postfic / sender_canonical:

postmaster [email protected]

O que acontece:

Então, quando eu faço

> sudo /etc/init.d/postfix start

tudo parece funcionar bem e o /var/log/mail.log diz: "ubuntu postfix / master [9720]: daemon iniciado - versão 2.8.5, configuração / etc / postfix "

Mas quando executo meu script PHP (que funciona bem com o Windows e o Sendmail), ele simplesmente é executado e nada acontece, nem mesmo um erro é registrado.

O que eu realmente quero alcançar:

Estou trabalhando localmente em um site de comércio eletrônico. Ele funciona bem no servidor da Web dedicado, mas também quero que ele seja executado localmente por razões óbvias. Em alguns casos, ele envia e-mails e eu só quero poder recebê-los com o Thunderbird ou de qualquer outra forma. Está a usar o Postfix ? Eu não preciso receber e-mails - eu só quero tornar os e-mails enviados visíveis de alguma forma. Eu não consegui encontrar nenhum tutorial passo-a-passo para esta questão (nem sobre o Senmail nem o Postfix - mas, para ser honesto, sou muito novo no Linux).

    
por Quasdunk 16.12.2011 / 00:06

3 respostas

13

No seu php.ini, isso:

sendmail_path = /etc/postfix

Deve ser o caminho para o binário do sendmail (ou compatível).
Você o configurou para o diretório de configuração do postfix, o que não está certo.

Por razões históricas, geralmente /usr/bin/sendmail é mantido como um link de compatibilidade.
sendmail foi o primeiro (eu acho) e praticamente tudo apenas assume que está no MTA instalado. Então, quando não é, a substituição faz um link simbólico para que nada quebre.

    
por Caesium 16.12.2011 / 00:14
1

Para enviar e-mails do host local (WAMP, XAMP ou LAMP), você pode usar o pacote PHPMailer

  • Clique aqui para fazer download do link do github e Siga as instruções dadas no arquivo leia-me.

Esta será a mesma instrução dada no arquivo leia-me.

WAMP (janelas):

Primeiro você tem que editar o "php.ini" Para localizar esse arquivo, exiba o phpinfo usando o seguinte código do servidor WAMP. Crie um arquivo php [setting.php] dentro de C: / wamp / www / e adicione o seguinte conteúdo ao arquivo.

<?php
     echo phpinfo();
?>

Digite localhost / setting.php no navegador. Procure por "Loaded Configuration File" Esse será o caminho para o seu php.ini .

No arquivo php.ini , remova o arquivo; (semi-pontos) fornecido para 'extension = php_openssl.dll. Agora a configuração do servidor acabou ...

  • Depois de baixar a pasta PHPMailer do github,
  • Extraia > Copie a pasta completa para a sua pasta de projeto, por exemplo, C: / wamp / www /
  • Encontre o arquivo index.php.
  • Altere o parâmetro conforme sua necessidade.
  • Em seguida, no tipo de navegador localhost / PHPMailer / index.php .
  • Em seguida, ele mostrará a mensagem de sucesso se o e-mail for enviado, caso contrário, ocorrerá uma mensagem de erro.

LAMP (Linux):

  • No caso do linux, não há necessidade de editar o arquivo php.ini como primeiro ponto explicado em WAMP.

  • Mais uma alteração é projeto ou a pasta raiz do documento é diferente.

  • No Linux, a pasta raiz do documento padrão será / var / www
  • Você pode alterar a pasta raiz do documento facilmente. Para essa visita, link
  • Copie o PhpMailer para esta pasta raiz do documento e edite index.php conforme sua necessidade.
  • Em seguida, digite localhost / PhpMailer / index.php no navegador.
por shashidhara 23.05.2017 / 14:39
0

Para enviar e-mail (com o pacote sendmail) pelo Gmail a partir do host local, marque PHP + Ubuntu Envie um email usando o formato do gmail localhost é outra possível resposta.

    
por Vikas Dwivedi 16.07.2017 / 08:04