@extends('layouts.admin', ['menu' => 'mail']) @section('title', 'ইমেইল নোটিফিকেশন') @section('content') @include('partials.errors')
@csrf

চালু / বন্ধ

বন্ধ রাখলে কোনো মেইল যাবে না। আবেদন বা এন্ট্রিতে ইমেইল ঠিকানা থাকলেই মেইল যায়।

দুই অবস্থাতেই আবেদনের বিস্তারিত পেজ থেকে যেকোনো মেইল আবার পাঠানো যায়।

মেইল সার্ভার (কোন ইমেইল থেকে যাবে)

@if ($c['pass'] !== '')@endif
Gmail / Google Workspace / বিশ্ববিদ্যালয়ের মেইল কীভাবে দেবেন
  • বিশ্ববিদ্যালয়ের মেইল (@gstu.edu.bd): গোবিপ্রবির মেইল Google Workspace-এ চলে, তাই "বিশ্ববিদ্যালয়ের মেইল @gstu.edu.bd (Google Workspace)" বেছে নিন — সার্ভার smtp.gmail.com, পোর্ট ৫৮৭, STARTTLS। ইউজারনেম ও প্রেরকের ইমেইল হবে বিশ্ববিদ্যালয়ের ইমেইল (যেমন ictcell@gstu.edu.bd)। পাসওয়ার্ডের জায়গায় সেই অ্যাকাউন্টের App Password দিন: myaccount.google.com → Security → 2-Step Verification চালু → App passwords → নতুন তৈরি করে ১৬ অক্ষরের কোডটি এখানে দিন। App passwords অপশন না দেখালে বিশ্ববিদ্যালয়ের Google Workspace অ্যাডমিনকে (আইসিটি সেল) ২-ধাপ যাচাই চালু করতে বলুন। ব্যক্তিগত Gmail-এর নিয়মও একই।
  • Google Workspace SMTP Relay: Workspace অ্যাডমিন Admin console → Apps → Google Workspace → Gmail → Routing → SMTP relay service-এ এই সার্ভারের IP অনুমতি দিলে App Password ছাড়াও smtp-relay.gmail.com দিয়ে @gstu.edu.bd থেকে মেইল যায়।
  • নিজস্ব মেইল সার্ভার (cPanel ইত্যাদি): সাধারণত mail.আপনার-ডোমেইন, পোর্ট ৪৬৫ (SSL) বা ৫৮৭ (STARTTLS)। ইমেইল অ্যাকাউন্টের ইউজারনেম ও পাসওয়ার্ড দিন।
  • হোস্টিংয়ের নিজস্ব মেইল (PHP mail): হোস্টিং বাইরের SMTP (Gmail) আটকে রাখলে এটা বাছুন — পাসওয়ার্ড লাগে না। প্রেরকের ইমেইল হিসেবে এই ডোমেইনের একটি ইমেইল দিন (যেমন admin@আপনার-ডোমেইন, cPanel → Email Accounts-এ তৈরি করা), নইলে মেইল স্প্যামে যেতে পারে।
  • Gmail দিয়ে না গেলে: নিচে "সংযোগ পরীক্ষা" চাপুন। সাধারণ কারণ — (১) হোস্টিং ৫৮৭/৪৬৫ পোর্ট বন্ধ রেখেছে বা cPanel-এর "SMTP Restrictions" চালু; (২) App Password-এর বদলে সাধারণ পাসওয়ার্ড দেওয়া; (৩) ইউজারনেম পুরো ইমেইল নয়; (৪) Google নতুন সার্ভার থেকে লগইন আটকেছে — myaccount.google.com → Security-তে অনুমতি দিন। App Password-এর ফাঁকা জায়গা নিজে থেকে বাদ যায়।
  • Microsoft 365: smtp.office365.com, পোর্ট ৫৮৭, STARTTLS।
  • পাসওয়ার্ড ডাটাবেসে এনক্রিপ্ট করে রাখা হয়, পেজে কখনো দেখানো হয় না। সংরক্ষণের পর নিচে "পরীক্ষামূলক মেইল" পাঠিয়ে দেখে নিন।

কোন ঘটনায় কোন মেইল যাবে

টিক দেওয়া ঘটনায় (স্বয়ংক্রিয় অবস্থায়) মেইল যায়। আবেদনকারী যে ভাষায় (বাংলা/English) আবেদন করেছেন, মেইল সেই ভাষার লেখায় যায়। লেখার ভেতরে এগুলো রাখলে নিজে থেকে বসে যায়: @foreach ($vars as $k => $lb){!! $k !!} {!! r501_e($lb) !!}; @endforeach

@foreach (mail_events() as $ev => $lb)
@foreach (['bn' => 'বাংলা', 'en' => 'English'] as $lg => $lgName) @php([$sub, $body] = mail_template($ev, $lg)) @php($custom = isset($rules['tpl'][$ev][$lg]))

{!! ue($lgName) !!} {!! $custom ? '' . e('বদলানো') . '' : '' !!}

@if ($custom)@endif
@endforeach
@endforeach

পরীক্ষামূলক মেইল

@csrf
@csrf মেইল যাচ্ছে না? এটা চাপলে সার্ভারে সংযোগ, এনক্রিপশন ও লগইন — কোন ধাপে আটকাচ্ছে দেখাবে (৫৮৭ ও ৪৬৫ দুই পোর্টেই চেষ্টা করে)।
@if ($diag = session('mail_diag')) @endif @if ($c['host'] === '' || ($c['from'] === '' && $c['user'] === ''))

আগে মেইল সার্ভারের তথ্য দিয়ে সংরক্ষণ করুন।

@endif

মেইলের লগ (সর্বশেষ ৪০টি)

@if (!$log)

এখনো কোনো মেইল পাঠানো হয়নি।

@else
@foreach ($log as $m) @endforeach
সময়প্রাপকঘটনাআবেদনফলাফল
{!! bn_datetime($m->created_at) !!}{!! r501_e($m->to_email) !!} {!! r501_e($m->event === 'test' ? 'পরীক্ষামূলক' : (mail_events()[$m->event] ?? $m->event)) !!} {!! $m->booking_id ? '' . e($m->tracking_code ?: '#' . $m->booking_id) . '' : '—' !!} {!! $m->ok ? '' . e('গেছে') . '' : '' . e('ব্যর্থ') . '
' . e($m->error) . '' !!}
@endif
@endsection