Pergunta

conta My ISP exige que eu enviar um nome de usuário e senha para o correio SMTP saída.

Como faço para obter PHP para usar esta php.mail()? Ao executar o arquivo php.ini contém apenas entradas para o (SMTP= ) servidor e From: (sendmail_from= ).

Foi útil?

Solução

comando mail() PHP não suporta autenticação. Suas opções:

  1. PHPMailer - tutorial
  2. PERA - Tutorial
  3. As funções personalizadas - Veja várias soluções na seção de notas: http://php.net /manual/en/ref.mail.php

Outras dicas

eu aplicar os seguintes detalhes em arquivo php.ini. seus trabalhos bem.

SMTP = smtp.example.com
smtp_port = 25
username = info@example.com
password = yourmailpassord
sendmail_from = info@example.com

Estes detalhes são os mesmos que nas configurações do Outlook.

Use Falso sendmail for Windows para enviar e-mails.

  1. Criar um sendmail pasta chamada em C:\wamp\.
  2. Extrair esses 4 arquivos na pasta sendmail:. sendmail.exe, libeay32.dll, ssleay32.dll e sendmail.ini
  3. C:\wamp\sendmail\sendmail.ini Então configure:
smtp_server=smtp.gmail.com
smtp_port=465
auth_username=user@gmail.com
auth_password=your_password
  1. O trabalho vontade acima de encontro a uma conta do Gmail. E, em seguida, configure php.ini:

    sendmail_path = "C: \ wamp \ sendmail \ sendmail.exe -t"

  2. Agora, reiniciar o Apache, e isso é basicamente tudo que você precisa fazer.

PHP não tem autenticação no correio comando!

A seguir está trabalhando para mim em WAMPServer (janelas, php 5.2.17)

php.ini

[mail function]
; For Win32 only.
SMTP = mail.yourserver.com
smtp_port = 25
auth_username = smtp-username
auth_password = smtp-password
sendmail_from = you@yourserver.com

Depois de trabalhar durante todo o dia sobre isso, eu finalmente encontrei uma solução. Aqui está como eu enviar a partir do Windows XP com WAMP.

  1. servidor SMTP do Uso do Google. Você provavelmente precisará de uma conta.
  2. Baixe e instale Falso Sendmail . Eu apenas o download, descompactá-lo e colocá-lo na pasta WAMP.
  3. Criar um arquivo de teste PHP. Veja abaixo.
<?php
    $message = "test message body";
    $result = mail('recipient@some-domain.com', 'message subject', $message);
    echo "result: $result";
?>
  1. Atualize seu arquivo php.ini e seu arquivo sendmail.ini (sendmail.ini está na pasta sendmail).
  2. Verifique o arquivo error.log na pasta sendmail que acabou de criar, se ele não funciona.

Referência:

  1. Instale Postfix (Sendmail compatível).
  2. Editar /etc/postfix/main.cf para ler:
#Relay config
relayhost = smtp.server.net
smtp_use_tls=yes
smtp_sasl_auth_enable=yes
smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd
smtp_tls_CAfile = /etc/postfix/cacert.pem
smtp_sasl_security_options = noanonymous
  1. Criar /etc/postfix/sasl_passwd, digite:
smtp.server.net username:password
  1. Type # /usr/sbin/postmap sasl_passwd

  2. Em seguida, execute: service postfix reload

Agora PHP será executado mail como de costume com o comando sendmail -t -i e Postfix irá interceptá-lo e retransmiti-lo para seu servidor SMTP que você forneceu.

Use Mail :: fábrica no pacote Correio PERA. Exemplo.

Estas respostas são desatualizados e depreciados. Melhores práticas ..

composer require phpmailer/phpmailer

O próximo em seu arquivo sendmail.php apenas exigir o seguinte

# use namespace
use PHPMailer\PHPMailer\PHPMailer;

# require php mailer
require_once "../vendor/autoload.php";

//PHPMailer Object
$mail = new PHPMailer;

//From email address and name
$mail->From = "from@yourdomain.com";
$mail->FromName = "Full Name";

//To address and name
$mail->addAddress("recepient1@example.com", "Recepient Name");
$mail->addAddress("recepient1@example.com"); //Recipient name is optional

//Address to which recipient will reply
$mail->addReplyTo("reply@yourdomain.com", "Reply");

//CC and BCC
$mail->addCC("cc@example.com");
$mail->addBCC("bcc@example.com");

//Send HTML or Plain Text email
$mail->isHTML(true);

$mail->Subject = "Subject Text";
$mail->Body = "<i>Mail body in HTML</i>";
$mail->AltBody = "This is the plain text version of the email content";

if(!$mail->send()) 
{
    echo "Mailer Error: " . $mail->ErrorInfo;
} 
else 
{
    echo "Message has been sent successfully";
}

Isso pode ser configure como nunca você gosta ..

Considerando uma resposta em esta questão , No PHP 4 o pacote PEAR Mail é normalmente já instalado, e isso realmente simples tutorial mostra as poucas linhas de código que você precisa adicionar ao seu arquivo php http://email.about.com/od/emailprogrammingtips/qt/PHP_Email_SMTP_Authentication.htm

  1. Instale o mais recente hMailServer . "Run hMailServer Administrador" na última etapa.
  2. Connect to "localhost".
  3. "Adicionar domínio ..."
  4. Set "127.0.0.1". como o "domínio", clique em "Save".
  5. "Configurações"> "Protocolos"> "SMTP"> "Entrega de e-mail"
  6. Set "localhost" como o "nome do host local", fornecer seus dados na seção "SMTP Relayer" , clique em "Save".
  7. "Configurações"> "Avançado"> "IP Ranges"> "Meu Computador"
  8. Desativar o "External para endereços de e-mail externos" na caixa de grupo "Requerer autenticação SMTP".
  9. Se você tiver modificado php.ini, reescrever estes 3 valores:

"SMTP = localhost",

"smtp_port = 25",

"; sendmail_path =".

Crédito: como configurar WAMP (localhost) para enviar e-mail usando o Gmail?

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top