it-swarm-eu.dev

php.ini & SMTP = - come si passano username e password

L'account My ISP Richiede che invii un nome utente e una password per la posta in uscita SMTP.

Come posso ottenere PHP per usarlo quando eseguo php.mail()? Il file php.ini Contiene solo voci per il server (SMTP= ) E From: (sendmail_from= ) .

64
Charles Faiga

Il comando PHP mail() non supporta l'autenticazione. Le tue opzioni:

  1. PHPMailer - Tutorial
  2. PEAR - Tutorial
  3. Funzioni personalizzate - Vedi le varie soluzioni nella sezione note: http://php.net/manual/en/ref.mail.php
40
daremon

Applico i seguenti dettagli sul file php.ini. funziona benissimo.

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

Questi dettagli sono gli stessi delle impostazioni di Outlook.

40
sugunan

Utilizzare sendmail falso per Windows per inviare posta.

  1. Crea una cartella denominata sendmail in C:\wamp\.
  2. Estrai questi 4 file nella cartella sendmail: sendmail.exe, libeay32.dll, ssleay32.dll e sendmail.ini.
  3. Quindi configurare C:\wamp\sendmail\sendmail.ini:
smtp_server=smtp.gmail.com
smtp_port=465
auth_username=user@gmail.com
auth_password=your_password
  1. Quanto sopra funzionerà con un account Gmail. E quindi configurare php.ini:

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

  2. Ora riavvia Apache e questo è praticamente tutto ciò che devi fare.

17
Henrik Rosvall

PHP lo fa ha l'autenticazione sul comando mail!

Quanto segue funziona per me su WAMPSERVER (windows, 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
12
blavla

Preferisco lo strumento PHPMailer in quanto non richiede PEAR. Ma in entrambi i casi, hai un malinteso: non vuoi un'impostazione a livello di server PHP per l'utente e la password SMTP. Dovrebbe essere un'impostazione per app (o per pagina). Se vuoi usare lo stesso account su pagine diverse PHP, aggiungilo a un tipo di file settings.php.

5
Eric_WVGG

Dopo aver lavorato tutto il giorno su questo, ho finalmente trovato una soluzione. Ecco come invio da Windows XP con WAMP.

  1. Usa il server SMTP di Google. Probabilmente hai bisogno di un account.
  2. Scarica e installa Fake Sendmail . L'ho appena scaricato, decompresso e messo nella cartella WAMP.
  3. Crea un test PHP. Vedi sotto.
<?php
    $message = "test message body";
    $result = mail('recipient@some-domain.com', 'message subject', $message);
    echo "result: $result";
?>
  1. Aggiorna il tuo file php.ini e il tuo file sendmail.ini (sendmail.ini si trova nella cartella sendmail).
  2. Controlla il file error.log nella cartella sendmail che hai appena creato se non funziona.

Riferimento:

5
B Seven
  1. Installa Postfix (compatibile con Sendmail).
  2. Modificare /etc/postfix/main.cf leggere:
#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. Creare /etc/postfix/sasl_passwd, accedere:
smtp.server.net username:password
  1. Genere # /usr/sbin/postmap sasl_passwd

  2. Quindi eseguire: service postfix reload

Ora PHP eseguirà la posta come al solito con il sendmail -t -i command e Postfix lo intercettano e lo inoltrano al server SMTP che hai fornito.

5
Jay Sudo

Usa Mail :: factory in Mail PEAR. Esempio.

2
William Keller

Queste risposte sono obsolete e ammortizzate. La migliore pratica..

composer require phpmailer/phpmailer

Il prossimo sul tuo file sendmail.php richiede solo quanto segue

# 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";
}

Questo può essere configurato come ti piace ..

2
Delino
  1. Installa l'ultimo hMailServer . "Esegui hMailServer Administrator" nell'ultimo passaggio.
  2. Connettiti a "localhost".
  3. "Aggiungi dominio ..."
  4. Impostare "127.0.0.1." come "Dominio", fai clic su "Salva".
  5. "Impostazioni"> "Protocolli"> "SMTP"> "Consegna di e-mail"
  6. Imposta "localhost" come "Nome host locale", inserisci i tuoi dati nella sezione "Relay SMTP" , fai clic su "Salva".
  7. "Impostazioni"> "Avanzate"> "Intervalli IP"> "Risorse del computer"
  8. Disattiva la casella di controllo "Indirizzi di posta elettronica esterni a esterni" nel gruppo "Richiedi autenticazione SMTP".
  9. Se hai modificato php.ini, riscrivi questi 3 valori:

"SMTP = localhost",

"smtp_port = 25",

"; sendmail_path =".

Credito: Come configurare WAMP (localhost) per inviare e-mail utilizzando Gmail?

0
Tamás Bolvári

Considerando una risposta in questa domanda , In PHP 4 the PEAR Il pacchetto di posta è in genere già installato, e questo tutorial davvero semplice mostra le poche righe di codice che devi aggiungere al tuo file php http://email.about.com/od/emailprogrammingtips/qt/PHP_Email_SMTP_Authentication.htm

0
Alex Jolig