Ciao ragazzi,
cercherò di spiegarmi nel modo più chiaro possibile: vorrei ricevere, tramite PHPMailer, le emails inviate dal form del mio sito. Fin'ora ho provato diverse configurazioni e tutte hanno lo stesso problema, ossia al mittente delle emails recapitatemi non riesco a mettere l'indirizzo che ha inserito l'utente nel form. In
Codice PHP:
$mail->setFrom();
sono costretto ad usare lo stesso indirizzo che uso per l'SMTP pena l'errore "Mailbox unavailable".
Inserisco il codice incriminato:
Codice PHP:
<?php
$msg = "";
use PHPMailer\PHPMailer\PHPMailer;
include_once "PHPMailer/PHPMailer.php";
include_once "PHPMailer/Exception.php";
include_once "PHPMailer/SMTP.php";
if (isset($_POST['submit'])) {
$subject = $_POST['subject'];
$email = $_POST['email'];
$my_email = "miamail@mail.com";
$message = $_POST['message'];
$mail = new PHPMailer();
$mail->Host = "smtp.mail.com";
$mail->isSMTP();
$mail->SMTPAuth = true;
$mail->Username = "miamail@mail.com";
$mail->Password = "12345";
$mail->SMTPSecure = "tls";
$mail->Port = 587;
$mail->addAddress('miamail@mail.com');
$mail->setFrom('miamail@mail.com');
$mail->Subject = $subject;
$mail->isHTML(true);
$mail->Body = $message;
if ($mail->send())
$msg = "Your email has been sent, thank you!";
else
//$msg = "Please try again!";
echo $mail->ErrorInfo;
}
?>
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport"
content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Contact Form</title>
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0-beta/css/bootstrap.min.css" integrity="sha384-/Y6pD6FV/Vv2HJnA6t+vslU6fwYXjCFtcEpHbNJ0lyAFsXTsjBbfaDjzALeQsN6M" crossorigin="anonymous">
</head>
<body>
<div class="container" style="margin-top: 100px">
<div class="row justify-content-center">
<div class="col-md-6 col-md-offset-3" align="center">
<br><br>
<?php if ($msg != "") echo "$msg<br><br>"; ?>
<form method="post" action="sendemail.php">
<input class="form-control" name="subject" placeholder="Subject..."><br>
<input class="form-control" name="email" type="email" placeholder="Email..."><br>
<textarea placeholder="Message..." class="form-control" name="message"></textarea><br>
<input class="btn btn-primary" name="submit" type="submit" value="Send Email">
</form>
</div>
</div>
</div>
</body>
</html>
Come potete vedere in
Codice PHP:
$mail->setFrom();
sono costretto ad inserire "miamail@mail.com" altrimenti ottengo l'errore di cui sopra e la mail non viene inviata. Il problema è che in questo modo, quando ricevo una mail dal form, al mittente c'è il mio indirizzo e non quello inserito dall'utente nel form, io vorrei fare il contrario.
In teoria
Codice PHP:
$mail->setFrom();
dovrebbere essere così
Codice PHP:
$mail->setFrom($email);
, dove è la variabile contenente l'indirizzo inserito nel form e che dovrebbe andare al mittente, ma così non funziona.
Al momento sto testando con XAMPP.
Chi mi da una mano? Sono disperato
In alternativa sapreste indicarmi un'alternativa free per il mio scopo?
Grazie!