نوب
3 سال پیش توسط نوب مطرح شد
7 پاسخ

خطای Mailer SMTP is not defined در لاراول روی هاست

سلام
من پروژه را روی هاست اشتراکی cpanel گذاشتم ولی ایمیلها را که میخواد ارسال کنه خطای Mailer [SMTP] is not defined.
را میده

تنظیمات env

MAIL_MAILER=smtp
MAIL_HOST=mail.domainname.ir
MAIL_PORT=587
MAIL_USERNAME=no-replay@domainname.ir
MAIL_PASSWORD=xxxxxxxxx
MAIL_ENCRYPTION=''

اسکرین شات خطا


ثبت پرسش جدید
moha li
تخصص : توسعه دهنده لاراول و Vue
@mohaligateway 3 سال پیش مطرح شد
0

سلام
درایور ایمیل را در آدرس زیر وارد کردید ؟

app/config/mail.php

@yk5742g


علی بیات
تخصص : توسعه دهنده ارشد وب
@ali.bayat 3 سال پیش مطرح شد
0

روی هاست سرویس SMTP فعاله؟


نوب
تخصص : کدنویس نوب :)
@yk5742g 3 سال پیش مطرح شد
0

@mohaligateway
سلام فایل mail.php به اینصورته
اگر تغییری میخواد لطفا برام بنویسین
سپاس

<?php

return [

    /*
    |--------------------------------------------------------------------------
    | Default Mailer
    |--------------------------------------------------------------------------
    |
    | This option controls the default mailer that is used to send any email
    | messages sent by your application. Alternative mailers may be setup
    | and used as needed; however, this mailer will be used by default.
    |
    */

    'default' => env('MAIL_MAILER', 'smtp'),

    /*
    |--------------------------------------------------------------------------
    | Mailer Configurations
    |--------------------------------------------------------------------------
    |
    | Here you may configure all of the mailers used by your application plus
    | their respective settings. Several examples have been configured for
    | you and you are free to add your own as your application requires.
    |
    | Laravel supports a variety of mail "transport" drivers to be used while
    | sending an e-mail. You will specify which one you are using for your
    | mailers below. You are free to add additional mailers as required.
    |
    | Supported: "smtp", "sendmail", "mailgun", "ses",
    |            "postmark", "log", "array"
    |
    */

    'mailers' => [
        'smtp' => [
            'transport' => 'smtp',
            'host' => env('MAIL_HOST', 'smtp.mailgun.org'),
            'port' => env('MAIL_PORT', 587),
            'encryption' => env('MAIL_ENCRYPTION', 'tls'),
            'username' => env('MAIL_USERNAME'),
            'password' => env('MAIL_PASSWORD'),
            'timeout' => null,
            'auth_mode' => null,
        ],

        'ses' => [
            'transport' => 'ses',
        ],

        'mailgun' => [
            'transport' => 'mailgun',
        ],

        'postmark' => [
            'transport' => 'postmark',
        ],

        'sendmail' => [
            'transport' => 'sendmail',
            'path' => '/usr/sbin/sendmail -bs',
        ],

        'log' => [
            'transport' => 'log',
            'channel' => env('MAIL_LOG_CHANNEL'),
        ],

        'array' => [
            'transport' => 'array',
        ],
    ],

    /*
    |--------------------------------------------------------------------------
    | Global "From" Address
    |--------------------------------------------------------------------------
    |
    | You may wish for all e-mails sent by your application to be sent from
    | the same address. Here, you may specify a name and address that is
    | used globally for all e-mails that are sent by your application.
    |
    */

    'from' => [
        'address' => env('MAIL_FROM_ADDRESS', 'hello@example.com'),
        'name' => env('MAIL_FROM_NAME', 'subsecurity'),
    ],

    /*
    |--------------------------------------------------------------------------
    | Markdown Mail Settings
    |--------------------------------------------------------------------------
    |
    | If you are using Markdown based email rendering, you may configure your
    | theme and component paths here, allowing you to customize the design
    | of the emails. Or, you may simply stick with the Laravel defaults!
    |
    */

    'markdown' => [
        'theme' => 'default',

        'paths' => [
            resource_path('views/vendor/mail'),
        ],
    ],

];

@ali.bayat سلام
بله فعاله و باهاش ایمیل هم میتونم بزنم به صورت دستی


moha li
تخصص : توسعه دهنده لاراول و Vue
@mohaligateway 3 سال پیش آپدیت شد
0

روی تنظیمات mail تغییرات انجام دادید ؟ آرایه mailers رو کجا فراخوانی می کنید ؟
@yk5742g


نوب
تخصص : کدنویس نوب :)
@yk5742g 3 سال پیش آپدیت شد
0

@mohaligateway درود دوست عزیز
مسیر App/Mailers/AppMailer.php

<?php

namespace App\Mailers;

use App\Ticket;
use Illuminate\Contracts\Mail\Mailer;

class AppMailer
{
    protected $mailer;
    protected $fromAddress = 'support@supportticket.dev';
    protected $fromName = 'Support Ticket';
    protected $to;
    protected $subject;
    protected $view;
    protected $data = [];

    public function __construct(Mailer $mailer)
    {
        $this->mailer = $mailer;
    }
    public function sendTicketInformation($user, Ticket $ticket)
    {
        $this->to = $user->email;
        $this->subject = "[Ticket ID: $ticket->ticket_id] $ticket->title";
        $this->view = 'mails.ticket_info';
        $this->data = compact('user', 'ticket');

        return $this->deliver();
    }
    public function sendTicketComments($ticketOwner, $user, Ticket $ticket, $comment)
    {
        $this->to = $ticketOwner->email;
        $this->subject = "RE: $ticket->title (Ticket ID: $ticket->ticket_id)";
        $this->view = 'mails.ticket_comment';
        $this->data = compact('ticketOwner', 'user', 'ticket', 'comment');

        return $this->deliver();
    }

    public function deliver()
    {
        $this->mailer->send($this->view, $this->data, function ($message) {
            $message->from($this->fromAddress, $this->fromName)
                ->to($this->to)->subject($this->subject);
        });
    }
}

یکسری از ارسال ها هم به اینصورت میزنم که به مسیر notifications/notifFile.php ارسال میشه . اسم notiFile منظورم اسم کلاس ارسال ایمل هامه که به صورت ShouldQueue ارسال میکنم
نمونه را میزارم

            $user->notify(new editProfileNotification());
<?php

namespace App\Notifications;

use Illuminate\Bus\Queueable;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Notifications\Messages\MailMessage;
use Illuminate\Notifications\Notification;
use Illuminate\Support\Facades\Request;

class editProfileNotification extends Notification implements ShouldQueue
{
    use Queueable;

    /**
     * Create a new notification instance.
     *
     * @return void
     */
    public function __construct()
    {
        //
    }

    /**
     * Get the notification's delivery channels.
     *
     * @param mixed $notifiable
     * @return array
     */
    public function via($notifiable)
    {
        return ['mail'];
    }

    /**
     * Get the mail representation of the notification.
     *
     * @param mixed $notifiable
     * @return \Illuminate\Notifications\Messages\MailMessage
     */
    public function toMail($notifiable)
    {
        return (new MailMessage)
            ->subject('پروفایل ویرایش شد')
            ->markdown('mails.edit_profile');
    }
    /**
     * Get the array representation of the notification.
     *
     * @param mixed $notifiable
     * @return array
     */
    public function toArray($notifiable)
    {
        return [
            //
        ];
    }
}

moha li
تخصص : توسعه دهنده لاراول و Vue
@mohaligateway 3 سال پیش مطرح شد
0

از اونجائی که گفتید به صورتی دستی از لاراول می تونید ایمیل ها رو ارسال کنید. در کد های بالا مشکلی وجود نداره. احتمال زیاد مشکل از صف ارسال ها می تونه باشه. صف job ها رو چک کنید ببینید ارسال میشه.
@yk5742g


Paradox
تخصص : در حال یادگیری
@paradox 2 سال پیش مطرح شد
0

سلام این ارور رو من هم دارم زمانی که رو هاست میخوام ثبت نام انجام بدم یا پسورد ریست انجام بدم
شما تونستید این ارور رو حل کنید ؟
اگه تونستید ممنون میشم راهنمایی کنید


برای ارسال پاسخ لازم است وارد شده یا ثبت‌نام کنید

ورود یا ثبت‌نام