You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Hostinger部署的Laravel项目多邮箱发邮方案及报错解决指引

在Hostinger部署的Laravel项目中实现多邮箱发送邮件的正确方式

先解决Method Illuminate\Mail\Mailer::from does not exist报错

Laravel的Mail门面本身没有from()静态方法,你之前的调用顺序错误。正确的写法是先指定收件人(to())获取邮件消息实例,再调用from()设置发件人:

Mail::to('sadsa@gmail.com')
    ->from('hr@xyz.com', 'HR Department')
    ->send(new Welcome());

更规范的做法是在Mailable类中预设默认发件人,需要时再灵活覆盖:
在app/Mail/Welcome.php的build()方法中:

public function build()
{
    return $this->from('noreply@domain.com', 'Default Team')
                ->view('emails.welcome');
}

发送时要切换发件人,直接在调用时覆盖即可:

Mail::to('sadsa@gmail.com')
    ->from('seo@domain.com', 'SEO Department')
    ->send(new Welcome());

适配Hostinger的更优邮件方案

既然原生mail()可用,推荐以下两种更稳定的方案:

方案1:使用Laravel的sendmail驱动(复用服务器原生服务)

在项目根目录的.env文件中配置:

MAIL_MAILER=sendmail
MAIL_FROM_ADDRESS=noreply@domain.com
MAIL_FROM_NAME="${APP_NAME}"

这种方式和你能用的原生mail()底层一致,但通过Laravel邮件系统管理,更易维护多发件人场景。

方案2:使用Hostinger自带SMTP服务(更稳定,适合批量发送)

Hostinger提供适配性更好的免费SMTP服务,配置后发送成功率更高,不会轻易被标记为垃圾邮件。在.env中配置:

MAIL_MAILER=smtp
MAIL_HOST=smtp.hostinger.com
MAIL_PORT=465
MAIL_USERNAME=你的域名邮箱(比如noreply@domain.com)
MAIL_PASSWORD=该邮箱的登录密码(或Hostinger后台生成的应用专用密码)
MAIL_ENCRYPTION=ssl
MAIL_FROM_ADDRESS=noreply@domain.com
MAIL_FROM_NAME="${APP_NAME}"

切换发件人时,只需在发送代码中用from()指定对应邮箱即可,注意发件人必须是你在Hostinger后台创建的域名邮箱,不能用外部邮箱。

验证配置有效性

可以添加一个测试路由快速验证:

Route::get('/test-mail', function () {
    try {
        Mail::to('你的测试邮箱@gmail.com')
            ->from('developer@domain.com', 'Dev Team')
            ->send(new \App\Mail\Welcome());
        return '邮件发送成功';
    } catch (\Exception $e) {
        return '发送失败:'.$e->getMessage();
    }
});

访问该路由后,检查收件箱(包括垃圾邮件文件夹)确认结果。

内容的提问来源于stack exchange,提问作者003 Ajay kumar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.23 16:09:52