$from = "[email protected]";
$headers = "From:" . $from;
echo mail ("[email protected]" ,"testmailfunction" , "Oj",$headers);
Estou com problemas para enviar email em PHP. Eu recebo um erro: SMTP server response: 530 SMTP authentication is required
.
Fiquei com a impressão de que você pode enviar um email sem o SMTP para verificar. Sei que esse e-mail provavelmente será filtrado, mas isso não importa no momento.
[mail function]
; For Win32 only.
; http://php.net/smtp
SMTP = localhost
; http://php.net/smtp-port
smtp_port = 25
; For Win32 only.
; http://php.net/sendmail-from
sendmail_from = someonelse@example.com
Esta é a configuração no php.ini
arquivo. Como devo configurar o SMTP? Existem servidores SMTP que não exigem verificação ou eu mesmo devo configurar um servidor?
mail()
função incorporada do PHP .'phpmailer_init'
gancho de ação. É uma maneira conveniente de configurar o WordPress para correio SMTP ou Amazon SES (que suporta conexões SMTP).ou, para mais detalhes, continue a ler .
fonte
php mail()
questões de função - 2017 - não deve ter que baixar PHPMailer ou algum outro recurso 3rd party - graçasPara usuários do Unix, mail () está realmente usando o comando Sendmail para enviar email. Em vez de modificar o aplicativo, você pode alterar o ambiente. O msmtp é um cliente SMTP com sintaxe da CLI compatível com o Sendmail, o que significa que pode ser usado no lugar do Sendmail. Requer apenas uma pequena alteração no seu php.ini.
Mesmo a função low (mail) pode funcionar com o SMTP. É super útil se você estiver tentando conectar um aplicativo existente a serviços de correio como sendgrid ou mandrill sem modificar o aplicativo.
fonte
mail()
para algo que suporta SMTP. Obrigado!O problema é que a
mail()
função PHP tem uma funcionalidade muito limitada. Existem várias maneiras de enviar email do PHP.mail()
usa o servidor SMTP no seu sistema. Existem pelo menos dois servidores que você pode usar no Windows: hMailServer e xmail . Passei várias horas configurando e levantando-os. O primeiro é mais simples na minha opinião. No momento, o hMailServer está trabalhando no Windows 7 x64.mail()
usa servidor SMTP em uma máquina remota ou virtual com Linux. Obviamente, um serviço de e-mail real como o Gmail não permite conexão direta sem credenciais ou chaves. Você pode configurar uma máquina virtual ou usar uma localizada na sua LAN. A maioria das distribuições linux possui servidor de correio pronto para uso. Configure e divirta-se. Eu uso o exim4 padrão no Debian 7 que escuta sua interface LAN.Não importa qual a sua escolha, recomendo que você use alguma camada de abstração. Você pode usar a biblioteca PHP em sua máquina de desenvolvimento executando o Windows e simplesmente
mail()
funcionar na máquina de produção com Linux. A camada de abstração permite trocar drivers de email, dependendo do sistema em que seu aplicativo está sendo executado. CrieMyMailer
classe abstrata ou interface com osend()
método abstrato . Herdar duas classesMyPhpMailer
eMySwiftMailer
. Implemente osend()
método de maneira apropriada.fonte
Aqui está uma maneira de fazer isso com o PHP PEAR
Se você usa o SMTP do Gmail, lembre-se de habilitar o SMTP na sua conta do Gmail, em configurações
EDIT: Se você não encontrar o Mail.php no debian / ubuntu, você pode instalar o php-pear com
Em seguida, instale a extensão de email:
Então você deve poder carregá-lo simplesmente de
require_once "Mail.php"
outra forma, aqui:/usr/share/php/Mail.php
fonte
Existem alguns servidores SMTP que funcionam sem autenticação, mas se o servidor exigir autenticação, não há como contornar isso.
As funções de correio embutidas do PHP são muito limitadas - especificar o servidor SMTP é possível apenas no Windows. No * nix,
mail()
usará os binários do sistema operacional.Se você deseja enviar email para um servidor SMTP arbitrário na rede, considere usar uma biblioteca como o SwiftMailer . Isso permitirá que você use, por exemplo, os servidores de saída do Gmail.
fonte
Nos casos em que você está hospedando um site Wordpress no Linux e tem acesso ao servidor, pode salvar algumas dores de cabeça instalando o msmtp, que permite enviar via smtp a partir da função padrão php mail (). O msmtp é uma alternativa mais simples ao postfix, que requer um pouco mais de configuração.
Aqui estão os passos:
Instale o msmtp
Crie um novo arquivo de configuração:
... com as seguintes informações de configuração:
Você precisa substituir os dados de configuração representados por tudo dentro de "<" e ">" (inclusive, remova-os). Para host / nome de usuário / senha, use suas credenciais normais para enviar e-mail através do seu provedor de e-mail.
Diga ao PHP para usá-lo
Adicione esta linha única:
A documentação completa pode ser encontrada aqui:
https://marlam.de/msmtp/
fonte