Sto cercando di inviare posta da localhost. ma non sono in grado di inviare la posta da localhost, quindi qualcuno può dirmi come riconfigurare il mio xampp per inviare posta da localhost
Sto cercando di inviare posta da localhost. ma non sono in grado di inviare la posta da localhost, quindi qualcuno può dirmi come riconfigurare il mio xampp per inviare posta da localhost
Risposte:
Puoi inviare posta da localhost con il pacchetto sendmail, il pacchetto sendmail è integrato in XAMPP. Quindi, se stai usando XAMPP, puoi facilmente inviare posta da localhost.
ad esempio è possibile configurare C:\xampp\php\php.ini
e c:\xampp\sendmail\sendmail.ini
per gmail inviare posta.
in C:\xampp\php\php.ini
trova extension=php_openssl.dll
e rimuove il punto e virgola dall'inizio di quella riga per far funzionare SSL per gmail per localhost.
nel file php.ini trova [mail function]
e modifica
SMTP=smtp.gmail.com
smtp_port=587
sendmail_from = my-gmail-id@gmail.com
sendmail_path = "\"C:\xampp\sendmail\sendmail.exe\" -t"
Ora aperta C:\xampp\sendmail\sendmail.ini
. Sostituisci tutto il codice esistente in sendmail.ini con il seguente codice
[sendmail]
smtp_server=smtp.gmail.com
smtp_port=587
error_logfile=error.log
debug_logfile=debug.log
auth_username=my-gmail-id@gmail.com
auth_password=my-gmail-password
force_sender=my-gmail-id@gmail.com
Ora hai fatto !! crea file php con funzione mail e invia mail da localhost.
PS: non dimenticare di sostituire my-gmail-id e my-gmail-password nel codice sopra. Inoltre, non dimenticare di rimuovere le chiavi duplicate se hai copiato le impostazioni dall'alto. Ad esempio commentare la seguente riga se esiste un altro sendmail_path : sendmail_path="C:\xampp\mailtodisk\mailtodisk.exe"
nel file php.ini
Ricorda inoltre di riavviare il server utilizzando il pannello di controllo XAMMP in modo che le modifiche abbiano effetto.
Per gmail, controlla https://support.google.com/accounts/answer/6010255 per consentire l'accesso da app meno sicure.
Per inviare e-mail su Linux (con pacchetto sendmail) tramite Gmail da localhost, controlla PHP + Ubuntu Invia e-mail usando gmail da localhost .
In XAMPP v3.2.1 a scopo di test è possibile visualizzare le e-mail che XAMPP invia in XAMPP / mailoutput. Nel mio caso su Windows 8 ciò non richiedeva alcuna configurazione aggiuntiva ed era una soluzione semplice per testare la posta elettronica
c:\xampp\php\php.ini
, cerca [mail function]
e rimuovi il commento dalla riga menzionata mailtodisk.exe
. Mantieni commentate tutte le altre righe di questa sezione tranne mail.add_x_header
quella.
sendmail_path="C:\xampp\mailtodisk\mailtodisk.exe"
È molto semplice inviare e-mail su localhost o server locale
Nota: sto usando il software del server di posta di prova su Windows 7 64 bit con Xampp installato
Basta scaricare lo strumento del server di posta di prova e installarlo secondo le istruzioni fornite sul sito Web Test Mail Server Tool
Ora devi cambiare solo due righe nel php.ini
file
[mail function]
e rimuovi i due punti che è prima;smtp = localhost
sendmail_path = "C:\xampp\mailtodisk\mailtodisk.exe"
Non è necessario modificare nient'altro, ma se non si ricevono ancora e-mail che controllare per SMTP port
, il numero di porta deve essere lo stesso.
Il metodo sopra è per le impostazioni predefinite fornite dal software Xampp.
dovresti usare Papercut questa semplice applicazione per testare l'invio di posta. e non è necessario configurare nulla.
Basta eseguirlo e provare a inviare e-mail di prova:
test_sendmail.php
<?php
$to = "somebody@example.com";
$subject = "My subject";
$txt = "Hello world!";
$headers = "From: webmaster@example.com" . "\r\n" .
"CC: somebodyelse@example.com";
mail($to,$subject,$txt,$headers);
?>
e vedrai questo:
Spero che tu abbia una buona giornata. puoi trovarmi su Youtube per ulteriori tutorial Piseth Sok
Cheer!
Devi configurare SMTP sul tuo server. Puoi utilizzare G Suite SMTP di Google gratuitamente:
<?php
$mail = new PHPMailer(true);
// Send mail using Gmail
if($send_using_gmail){
$mail->IsSMTP(); // telling the class to use SMTP
$mail->SMTPAuth = true; // enable SMTP authentication
$mail->SMTPSecure = "ssl"; // sets the prefix to the servier
$mail->Host = "smtp.gmail.com"; // sets GMAIL as the SMTP server
$mail->Port = 465; // set the SMTP port for the GMAIL server
$mail->Username = "your-gmail-account@gmail.com"; // GMAIL username
$mail->Password = "your-gmail-password"; // GMAIL password
}
// Typical mail data
$mail->AddAddress($email, $name);
$mail->SetFrom($email_from, $name_from);
$mail->Subject = "My Subject";
$mail->Body = "Mail contents";
try{
$mail->Send();
echo "Success!";
} catch(Exception $e){
// Something went bad
echo "Fail :(";
}
?>
Leggi di più PHPMailer
qui .
Come nella mia esperienza personale, ho scoperto che una cosa molto simile alla risposta di Vikas Dwivedi funzionerà perfettamente.
Passaggio 1 (file php.ini)
Nel file php.ini che si trova in xampp\php\php.ini
. Modificare le impostazioni come segue:
extension=php_openssl.dll
[mail function]
sendmail_path =":\xampp7\sendmail\sendmail.exe -t"
mail.add_x_header=On
Disattiva le altre variabili mail funciton
inserendole ;
prima. per esempio;smtp_port=25
Passaggio 2 (file sendmail.ini)
In sendmail.ini che si trova in xampp \ sendmail \ semdmail.ini cambia quanto segue:
smtp_server=smtp.gmail.com
smtp_port=465
smtp_ssl=auto
auth_username=address@gmail.com
auth_password=YourPassword
Passaggio 3 (codice)
Crea un file php e usa quanto segue:
<?php
mail($to, "subject", "body", "From: ".$from);
?>
Avviso
Questo codice viene utilizzato per la posta dal tuo localhost XAMPP e dal tuo account Gmail. Questo codice è molto semplice e per me prova a provare te stesso.
Di seguito cambia nel file php.ini
SMTP=smtp.gmail.com
smtp_port=587
sendmail_from = your@gmail.com
sendmail_path = "\"C:\xampp\sendmail\sendmail.exe\" -t"
extension=php_openssl.dll
Di seguito cambia nel file sendmail.ini
smtp_server=smtp.gmail.com
smtp_port=587
error_logfile=error.log
debug_logfile=debug.log
auth_username=yourmail@gmail.com
auth_password=your-gmail-password
force_sender=yourmail@gmail.com
Si prega di scrivere il codice di belove nel file PHP per inviare e-mail
<?php
$to = "tomail@gmail.com";
$subject = "Test Mail";
$headers = "From: from_mail@gmail.com\r\n";
$headers .= "Reply-To: replytomail@gmail.com\r\n";
$headers .= "CC: theassassin.edu@gmail.com\r\n";
$headers .= "MIME-Version: 1.0\r\n";
$headers .= "Content-Type: text/html; charset=ISO-8859-1\r\n";
$message = '<html><body>';
$message .= '<img src="//css-tricks.com/examples/WebsiteChangeRequestForm/images/wcrf-header.png" alt="Website Change Request" />';
$message .= '<table rules="all" style="border-color: #666;" cellpadding="10">';
$message .= "<tr style='background: #eee;'><td><strong>Name:</strong> </td><td>Details</td></tr>";
$message .= "<tr><td><strong>Email:</strong> </td><td>Details</td></tr>";
$message .= "<tr><td><strong>Type of Change:</strong> </td><td>Details</td></tr>";
$message .= "<tr><td><strong>Urgency:</strong> </td><td>Details</td></tr>";
$message .= "<tr><td><strong>URL To Change (main):</strong> </td><td>Details</td></tr>";
$addURLS = 'google.com';
if (($addURLS) != '') {
$message .= "<tr><td><strong>URL To Change (additional):</strong> </td><td>" . $addURLS . "</td></tr>";
}
$curText = 'dummy text';
if (($curText) != '') {
$message .= "<tr><td><strong>CURRENT Content:</strong> </td><td>" . $curText . "</td></tr>";
}
$message .= "<tr><td><strong>NEW Content:</strong> </td><td>New Text</td></tr>";
$message .= "</table>";
$message .= "</body></html>";
if(mail($to,$subject,$message,$headers))
{
echo "Mail Send Sucuceed";
}
else{
echo "Mail Send Failed";
}
?>
Devi definire un SMTP
server e una porta per questo. Tutti tranne l'invio di mail da host live.
Questo è un link utile a riguardo .
NB: la porta non deve essere utilizzata. Si prega di fare attenzione che, alcune applicazioni come
Skype
utilizzano le porte predefinite e impediscono l'invio di posta.
ho trascorso più di un'ora a cercare di farlo funzionare. per tutti coloro che hanno lo stesso problema con tutti i suggerimenti pubblicati che non funzionano: devi riavviare Apache nella tua interfaccia XAMPP! il riavvio di XAMPP non funzionerà !!
Ho provato molti modi per inviare una mail da XAMPP Localhost, ma poiché XAMPP non ha un certificato SSL, la mia richiesta e-mail è stata bloccata da Gmail o provider di servizi SMTP simili.
Quindi ho usato MailHog per il server SMTP locale, quello che devi fare è semplicemente eseguirlo. localhost: 1025 è per il server smtp, localhost: 8025 è per il server di posta, dove è possibile controllare le e-mail inviate.
ecco il mio codice:
require_once "src/PHPMailer.php";
require_once "src/SMTP.php";
require_once "src/Exception.php";
$mail = new PHPMailer\PHPMailer\PHPMailer();
//Server settings
$mail->SMTPDebug = 3; // Enable verbose debug output
$mail->isSMTP(); // Send using SMTP
$mail->Host = 'localhost'; // Set the SMTP server to send through
$mail->Port = 1025; // TCP port to connect to
// $mail->Username = ''; // SMTP username
// $mail->Password = ''; // SMTP password
// $mail->SMTPAuth = true; // Enable SMTP authentication
// $mail->SMTPSecure = 'tls'; // Enable TLS encryption; `PHPMailer::ENCRYPTION_SMTPS` also accepted
//Recipients
$mail->setFrom('testtoo@testto.com', 'Mailer');
$mail->addAddress('testtoo@webbamail.com', 'Joe User'); // Add a recipient
// Content
$mail->isHTML(true); // Set email format to HTML
$mail->Subject = 'Here is the subject';
$mail->Body = 'This is the HTML message body <b>in bold!</b>';
$mail->AltBody = 'This is the body in plain text for non-HTML mail clients';
if(!$mail->Send()) {
echo "Mailer Error: " . $mail->ErrorInfo;
} else {
echo "Message sent!";
}
oltre a tutte le risposte si ricorda che nel sendmail.ini
file:
auth_password = this-is- Not -your-Gmail-password
a causa di nuovi problemi di sicurezza di Google, è necessario seguire questi passaggi per creare una password dell'applicazione a questo scopo: