如何从单个电子邮件表单向多个用户发送电子邮件?拉拉维尔 8

时间:2021-05-07 00:35:47

标签: laravel

在我的应用程序中,我可以向单个用户发送电子邮件! 但我想从一个表单同时发送给多个用户!

我的班级

    class SendEvent extends Mailable {
        use Queueable, SerializesModels;
        public $data;

        /**
         * Create a new message instance.
         *
         * @return void
         */
        public function __construct($data) {
            $this->data = $data;
        }

        /**
         * Build the message.
         *
         * @return $this
         */
        public function build() {
            return $this->markdown('emails.eventEmail');
        }
    }

这是下面的 send() 函数。

我的控制器

    class EmailController extends Controller {
        public function send(Request $request) {
            $homeUrl = url('/');
            $eventId = $request->get('event_id');
            $eventTitle = $request->get('event_title');

            $eventUrl = $homeUrl.'/'.'events/'.$eventId.'/'.$eventTitle;

            $data = array(
                'your_name'=>$request->get('your_name'),
                'your_email'=>$request->get('your_email'),
                'friend_name'=>$request->get('friend_name'),
                'eventUrl'=>$eventUrl
            );

            $emailTo = $request->get('friend_email');   
            Mail::to($emailTo)->send(new SendEvent($data));
            return redirect()->back()->with('message','Event link sent to '.$emailTo);
        }
    }

在收件人地址表单中,我只能添加一个地址!

我在模型中的表单

    <form action="{{route('mail')}}" method="POST">@csrf
        <div class="modal-body">
            <input type="hidden" name="event_id" value="{{$event->id}}">
            <input type="hidden" name="event_title" value="{{$event->title}}">

            <div class="form-goup">
                <label>Your name * </label>
                <input type="text" name="your_name" class="form-control" required="">
            </div>
            <div class="form-goup">
                <label>Your email *</label>
                <input type="email" name="your_email" class="form-control" required="">
            </div>
            <div class="form-goup">
                <label>Person name *</label>
                <input type="text" name="friend_name" class="form-control" required="">
            </div>
            <div class="form-goup">
                <label>Person email *</label>
                <input type="email" name="friend_email" class="form-control" required="">
            </div>
        </div>
        <div class="modal-footer">
            <button type="button" class="btn btn-secondary" data-dismiss="modal">Close</button>
            <button type="submit" class="btn btn-primary">Mail this event</button>
        </div>
    </form>

如何让我的代码从表单发送到多个电子邮件地址?

1 个答案:

答案 0 :(得分:0)

我认为您可以通过将 $friend_name 设为数组来解决此问题

<input type="email" name="friend_email[]" class="form-control" required="">

然后您可以添加一个 js 函数来附加此输入以获取更多电子邮件 类似的东西

 $( "#form" ).append( "<input type="email" name="friend_email[]" class="form-control" 
    required="">
   " );

就是这样。 friend_email 将作为数组传递给 Mail,其中的每封电子邮件都会收到邮件

相关问题