Laravel .env auf shared hosting

derocco

Lt. Junior Grade
Registriert
Nov. 2015
Beiträge
331
Ich betreibe eine Laravel page auf einem shared hosting ohne ssh Zugriff.

Nun hatte ich folgendes Problem:
Die email Adresse die ein Formular verwendet wurde irgendwie zum spammen verwendet. (Obwohl das Formular im gesicherten Bereich ist etc. Unklar bis dato wie das passieren kann)

Nun habe mal zum testen das (schon jetzt starke) Passwort der Mailbox angepasst und dann im .env umgestellt.

Nun funktioniert das Formular nicht mehr. -> Mail authentification error

Ich habe dann im routes\web.php folgendes definiert und aufgerufen:

Code:
//Clear Cache facade value:
Route::get('/clear-cache', function() {
    $exitCode = Artisan::call('cache:clear');
    return '<h1>Cache facade value cleared</h1>';
});
//Clear Config cache:
Route::get('/config-cache', function() {
    $exitCode = Artisan::call('config:cache');
    return '<h1>Cache cleared</h1>';
});
//Clear Config clear:
Route::get('/config-clear', function() {
    $exitCode = Artisan::call('config:clear');
    return '<h1>Clear Config cleared</h1>';
});



Das sollte eingentlich die .env caches zurücksetzten.

Trotzdem erhalte ich weiter das problem.
Wenn ich dann die Mailbox im hintergrund wieder auf das alte Passwort setzte klappt es (obwohl das NICHT dem .env Passwort entspricht....)

Ich muss das kurz bis mittelfristig aber anpassen.

Wo mache ich einen Fehler?
 
Möglicherweise braucht Dein Shared-Hosting-Anbieter einfach etwas Zeit, um die Änderung des Mail-Accounts umzusetzen; idR. wird sowas über die Web-Configuration des Anbieters vorgenommen und wenn ich mich nicht täusche, werden derartige Änderungen im Regelfall nicht in Echtzeit umgesetzt.
Also: abwarten, in der Zwischenzeit die Doku des Anbieters lesen.
Ergänzung ()

derocco schrieb:
Die email Adresse die ein Formular verwendet wurde irgendwie zum spammen verwendet
DAS würde mir ggf. aber Kummer bereiten - falls das Formular selber korrumpiert ist, hast Du einen ernstzunehmenden Fehler in der Webanwendung, da würde dann auch kein starkes Passwort helfen.
Falls andererseits die Black Hats einfach nur an (D)eine Adresse gekommen sind, missbrauchen sie diese evtl. nur (Spoofing) - dann kannst Du eigentlich nix machen.
 
Phrasendreher schrieb:
Möglicherweise braucht Dein Shared-Hosting-Anbieter einfach etwas Zeit, um die Änderung des Mail-Accounts umzusetzen; idR. wird sowas über die Web-Configuration des Anbieters vorgenommen und wenn ich mich nicht täusche, werden derartige Änderungen im Regelfall nicht in Echtzeit umgesetzt.
Also: abwarten, in der Zwischenzeit die Doku des Anbieters lesen.
Ergänzung ()


DAS würde mir ggf. aber Kummer bereiten - falls das Formular selber korrumpiert ist, hast Du einen ernstzunehmenden Fehler in der Webanwendung, da würde dann auch kein starkes Passwort helfen.
Falls andererseits die Black Hats einfach nur an (D)eine Adresse gekommen sind, missbrauchen sie diese evtl. nur (Spoofing) - dann kannst Du eigentlich nix machen.
mmh da bin ich dran um zu sehen ob es wirklich vom Server kam oder ob nur gespooft wurde.
Bzw die Server Admins sind das am abklären.

Es liegt also definitv daran, dass das .env nicht berücksichtig wird.
Ich kann im Backend das Email Passwort ändern und mich UMGEHEN am Webmail damit anmelden...
Da habe ich also keine Wartezeit oder irgend sowas.

Beim Testen ist mir aufgefallen, dass ich sobald im .env das DB Passwort falsch setzte es SOFORT knallt.
Also da wird das .env offenbar jedesmal konsultiert.

Offenbar cachet aber das Formular irgendwie?

Das wird so gecalled:

Code:
 $send_result = Common::sendMail($mail_data);


// common.php      

  public static function sendMail($mail_data) {
        $template = $mail_data['template'];
        $template_data = $mail_data['template_data'];
        $inner_data = $mail_data['inner_data'];
        config(['mail.from.address' => $inner_data['from_mail_address']]);
        config(['mail.from.name' => $inner_data['from_mail_name']]);
        $flag = true;
        try {
            Mail::send($template, ['template_data' => $template_data], function($message) use ($inner_data)
            {
                $message->to($inner_data['to_mail_address'], $inner_data['to_mail_name'])->subject($inner_data['subject']);
                
                if(isset($inner_data['attach_file']) && !empty($inner_data['attach_file'])) {
                    $message->attach(public_path('storage/' . $inner_data['attach_file']));
                }   
            });
        } catch(\Swift_TransportException $e) {
           // var_dump($e);
           //exit;
            $flag = false;      
        }
        return $flag;
    }
 
Zurück
Oben