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= )
.
Il comando PHP mail()
non supporta l'autenticazione. Le tue opzioni:
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.
Utilizzare sendmail falso per Windows per inviare posta.
sendmail
in C:\wamp\
.sendmail
: sendmail.exe
, libeay32.dll
, ssleay32.dll
e sendmail.ini
.C:\wamp\sendmail\sendmail.ini
:smtp_server=smtp.gmail.com smtp_port=465 auth_username=user@gmail.com auth_password=your_password
Quanto sopra funzionerà con un account Gmail. E quindi configurare php.ini:
sendmail_path = "C:\wamp\sendmail\sendmail.exe -t"
Ora riavvia Apache e questo è praticamente tutto ciò che devi fare.
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
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.
Dopo aver lavorato tutto il giorno su questo, ho finalmente trovato una soluzione. Ecco come invio da Windows XP con WAMP.
<?php $message = "test message body"; $result = mail('recipient@some-domain.com', 'message subject', $message); echo "result: $result"; ?>
Riferimento:
/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
/etc/postfix/sasl_passwd
, accedere:smtp.server.net username:password
Genere # /usr/sbin/postmap sasl_passwd
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.
Usa Mail :: factory in Mail PEAR. Esempio.
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 ..
"SMTP = localhost",
"smtp_port = 25",
"; sendmail_path =".
Credito: Come configurare WAMP (localhost) per inviare e-mail utilizzando Gmail?
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