Por que esse breve script php não envia e-mail?

Não consigo obter meu script php para enviar e-mails.

 

Primeiro, configurei as configurações da function de email no arquivo php.ini da seguinte maneira:

Verifiquei as configurações da minha conta de e-mail no Outlook. Não requer autenticação, sua porta é 25 e seu tipo de conexão criptografada é ‘Auto’. Dado isso, configurei meu arquivo php.ini de acordo com isso:

 SMTP = ssl://smtp1.iis.com smtp_port = 25 

Então eu configurei:

 sendmail_from = my email address 

A declaração de eco imprime no navegador, então eu sei que o arquivo php é reconhecido e processado. Mas o navegador também mostra o seguinte erro:

 Warning: mail() [function.mail]: "sendmail_from" not set in php.ini or custom "From:" header missing in C:\xampp\htdocs\mailtest.php on line 3 

Define claramente o sendmail_from, então não sei o que mais fazer. Também tentei remover a parte ‘ssl: //’ da configuração SMTP no arquivo php.ini e configurando o arquivo php5.ini. Qual desses arquivos .ini devo configurar de qualquer maneira?

Você descompactiu sendmail_from no php.ini , sim? Deve ser assim:

 ; For Win32 only. sendmail_from = me@example.com 

Assim não:

 ; For Win32 only. ;sendmail_from = me@example.com 

A única razão para o PHP dizer que não está configurado … é, bem, se não estiver definido.

Editar

A única outra questão que eu poderia pensar (por esse aviso) é que você pode editar o arquivo php.ini errado. Se estiver configurado , o PHP não deve emitir esse aviso. Eu acredito que a configuração padrão do PHP em sua plataforma é \xampp\php\php.ini

Edit2

Seu host SMTP pode estar usando algo chamado pop-before-smtp . Experimente isso usando outro provedor de correio que use a autenticação SMTP (senha) para descartar isso.

Para responder a sua pergunta sobre “qual desses arquivos .ini devo configurar”, você pode executar o phpinfo () para ver a configuração do seu servidor. Isso listará os caminhos para todos os seus arquivos de configuração.

 sendmail_from = email@address.my 

Lembre-se: deve ser a =

Agora eu tenho uma resposta à minha pergunta …

Eu usei phpinfo () para descobrir qual arquivo php.ini eu deveria editar. Como aconteceu, havia 3 desses arquivos disponíveis na pasta do meu servidor. Dois estavam sob a pasta PhP (chamado php.ini e php5.in respectivamente) e o outro estava na pasta apache / bin. Usando a function phpinfo (), consegui determinar que eu estava editando os arquivos .ini errados (eu olhei para os parâmetros que eu estava configurando e não estavam mudando). Uma vez que eu editei o correto (o de apache / bin), o aviso: mail () [function.mail]: “sendmail_from” … erro parado.

Então, para enviar o correio enviado, editei o arquivo .ini correto como originalmente sugerido na minha pergunta:

 SMTP = myoutgoingmail.com (the same setting as my mail program - outlook) smtp_port = (the same as my mail program - oultook) sendmail_from = myemailaddress.com 

Odeio apontar algo tão terrivelmente óbvio se for um erro ortográfico intencional, mas na sua linha SMTP, não deveria ser ssl: // smtp 1.iis.com?

Você precisa passar um header ‘From’ para a function mail (). Eu acredito que a configuração sendmail_from se aplica somente aos ambientes Windows. Tente isso em vez disso:

  'me@example.com')); ?>