Ciao a tutti, sto realizzando il classico form di richiesta informazioni nel mio sito, dove l'utente inserisce il proprio nome, cognome, mail, oggetto, messaggio.
Per fare ciò ho utilizzato il comando Laravel: php artisan make:mail Contact, quindi ho il controller MailController in http/controllers, mentre in app ho la cartella mail con la classe Contact.php.
Il problema sorge che una volta compilato il form e cliccato sul pulsante submit del form, non mi viene inviata la mail.
Vi posto ora il codice:
Vista: index.blade.php
questo è il controller MailController:codice://codice del form contattami <div class="col-md-6"> <div class="contact_from_area wow fadeInUp animated"> <div class="contact_title"> <h3>Contattami:</h3> </div> <div class="row"> <form action="{{url('contact-me')}}" method="post" id="contactForm"> {{csrf_field()}} <div class="form-group col-md-12"> <input type="text" class="form-control" name="name" id="name" placeholder="Nome*" required> </div> <div class="form-group col-md-12"> <input type="text" class="form-control" name="last" id="last" placeholder="Cognome*" required> </div> <div class="form-group col-md-12"> <input type="email" class="form-control" name="email" id="email" placeholder="La tua email*" required> </div> <div class="form-group col-md-12"> <input type="text" class="form-control" name="subject" id="subject" placeholder="Oggetto"> </div> <div class="form-group col-md-12"> <textarea class="form-control" rows="1" id="message" name="message" placeholder="Scrivi qui il tuo messaggio....." required></textarea> </div> <div class="form-group col-md-12"> <button class="btn btn-default contact_btn" type="submit"><span>Invia messaggio</span></button> </div> </form> <div id="success"> <p>Il messaggio è stato inviato correttamente!</p> </div> <div id="error"> <p>Ci dispiace! Il tuo messaggio non è stato inviato, qualcosa è andato storto!!</p> </div> </div> </div> </div>
questo è Contact.php:codice:namespace mysite\Http\Controllers; use Illuminate\Http\Request; use App\Http\Requests; use Mail; use Collection; use App\Mail\Contact; /** * Description of MailController * * @author Ezio */ class MailController { public function contact(Request $request) { // validation and other stuff... // [...] // sender $sender = [ 'name' => $request->name, 'last' =>$request->last , 'mail' => $request->email ]; // recipients $recipients = new Collection; $recipients->push(['name' => 'Tirimacco Ezio', 'mail' => 'tirimaxx@gmail.com']); // attributes $attributes = [ 'name' => $request->name, 'message' => $request->message ]; Mail::send(new Contact($sender, $recipients, 'mail.contact', $attributes)); // return result // [...] } }
codice:namespace mysite\Mail; use Illuminate\Bus\Queueable; use Illuminate\Mail\Mailable; use Illuminate\Queue\SerializesModels; use Illuminate\Contracts\Queue\ShouldQueue; class Contact extends Mailable { use Queueable, SerializesModels; private $sender, $recipients, $template, $attributes; /** * Create a new message instance. * * @return void */ public function __construct($sender, $recipients, $template, $attributes) { $this->sender = $sender; $this->email = $recipients; $this->template = $template; $this->attributes = $attributes; } /** * Build the message. * * @return $this */ public function build() { // Senders addresses $this->from($this->sender['name'], $this->sender['last'] , $this->sender['mail']); // Recipients addresses foreach($recipients as $recipient) { $this->to($recipient['name'], $recipient['mail']); } // Subject $this->subject($this->sender['subject']); // Return view return $this->view($this->template); } }

Rispondi quotando
