在Laravel中实现保存电子邮件参数以供重新发送功能,可以按照以下步骤进行操作:
php artisan make:migration create_email_resend_table --create=email_resend
public function up()
{
Schema::create('email_resend', function (Blueprint $table) {
$table->increments('id');
$table->string('to');
$table->string('from');
$table->string('subject');
$table->text('body');
$table->string('attachments')->nullable();
$table->boolean('sent')->default(false);
$table->timestamps();
});
}
php artisan migrate
php artisan make:model EmailResend
namespace App;
use Illuminate\Database\Eloquent\Model;
class EmailResend extends Model
{
protected $table = 'email_resend';
}
use App\EmailResend;
// 保存电子邮件参数
$emailResend = new EmailResend();
$emailResend->to = $to;
$emailResend->from = $from;
$emailResend->subject = $subject;
$emailResend->body = $body;
$emailResend->attachments = $attachments;
$emailResend->save();
use App\EmailResend;
use Illuminate\Support\Facades\Mail;
// 获取需要重新发送的电子邮件参数
$emailResend = EmailResend::findOrFail($emailResendId);
// 构建电子邮件消息
$mailMessage = new \Illuminate\Mail\Message();
$mailMessage->to($emailResend->to);
$mailMessage->from($emailResend->from);
$mailMessage->subject($emailResend->subject);
$mailMessage->setBody($emailResend->body, 'text/html');
// 添加附件
if ($emailResend->attachments) {
$attachments = json_decode($emailResend->attachments, true);
foreach ($attachments as $attachment) {
$mailMessage->attach($attachment['path'], ['as' => $attachment['name']]);
}
}
// 发送电子邮件
Mail::send($mailMessage);
// 更新电子邮件发送状态
$emailResend->sent = true;
$emailResend->save();
通过以上步骤,您将能够在Laravel中实现保存电子邮件参数以供重新发送功能。