php.ini & SMTP = - como você passar nome de usuário e senha
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= )
.
Solução
comando mail()
PHP não suporta autenticação. Suas opções:
- PHPMailer - tutorial
- PERA - Tutorial
- 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.
- Criar um
sendmail
pasta chamada emC:\wamp\
. - Extrair esses 4 arquivos na pasta
sendmail
:.sendmail.exe
,libeay32.dll
,ssleay32.dll
esendmail.ini
-
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
-
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"
-
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
Eu prefiro o href="http://phpmailer.codeworxtech.com/" rel="noreferrer"> ferramenta como ele não requer PERA. Mas de qualquer forma, você tem um mal-entendido: você não quer um ambiente PHP-wide-servidor para o usuário SMTP e senha. Esta deve ser uma configuração por aplicativo (ou por página). Se você quiser usar a mesma conta em diferentes páginas PHP, adicioná-lo a algum tipo de arquivo settings.php.
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.
- servidor SMTP do Uso do Google. Você provavelmente precisará de uma conta.
- Baixe e instale Falso Sendmail . Eu apenas o download, descompactá-lo e colocá-lo na pasta WAMP.
- 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"; ?>
- Atualize seu arquivo php.ini e seu arquivo sendmail.ini (sendmail.ini está na pasta sendmail).
- Verifique o arquivo error.log na pasta sendmail que acabou de criar, se ele não funciona.
Referência:
- Instale Postfix (Sendmail compatível).
- 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
- Criar
/etc/postfix/sasl_passwd
, digite:
smtp.server.net username:password
-
Type #
/usr/sbin/postmap sasl_passwd
-
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
- Instale o mais recente hMailServer . "Run hMailServer Administrador" na última etapa.
- Connect to "localhost".
- "Adicionar domínio ..."
- Set "127.0.0.1". como o "domínio", clique em "Save".
- "Configurações"> "Protocolos"> "SMTP"> "Entrega de e-mail"
- Set "localhost" como o "nome do host local", fornecer seus dados na seção "SMTP Relayer" , clique em "Save".
- "Configurações"> "Avançado"> "IP Ranges"> "Meu Computador"
- Desativar o "External para endereços de e-mail externos" na caixa de grupo "Requerer autenticação SMTP".
- 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?