簡體   English   中英

如何在電子郵件中設置自己的“退訂”按鈕?

[英]How do I make my own “unsubscribe” button in an email?

我有一個控制器,該控制器發送帶有一系列變量的電子郵件,其中包括該人的姓名和他們發出請求的時間戳。 電子郵件發送了一個html文件,並且在html文件中有一個“單擊此處刪除bla bla bla”。 線。 當用戶單擊鏈接時,該鏈接會將其發送到控制器,該控制器將從我的數據庫中刪除其名稱。

現在,我不太確定該怎么做。 我顯然可以做這樣的事情:

Click <a href='https://xxx.xx.xxx.xxx:8000/web/misc/request/delete/<?php echo $data['timestamp']; ?>/<?php echo $data['name']; ?>'> here</a> to delete bla bla bla.

然后,在我的路由文件中,我將擁有:

Route::get('/web/misc/request/delete/{time}/{name}', 'EmailController@deleteRequest');

然后,我可以使用名稱和時間戳查詢數據庫,然后中提琴刪除。

但是有人可以輕松地編輯URL中的名稱或時間戳,對嗎?

這使我想使用POST,但是我不確定在這種情況下應該如何做。 我可以制作一個表單,將一些輸入設置為隱藏,然后將名稱和時間戳存儲到這些輸入值中。 我還沒有嘗試過,因為它聽起來很hacky。 在這種情況下,使用會話也不起作用,對嗎? 這是使用Cookie的好時機嗎? 還是應該使用某種鑰匙?

但是有人可以輕松地編輯URL中的名稱或時間戳,對嗎?

這讓我想使用POST

那無濟於事。 您仍將完全依賴客戶端控制下的數據。


生成隨機字母數字字符串以使用標識符。 將其與有關已訂閱用戶的其余數據一起存儲在數據庫中。 將其包括在URL中。

收到請求后,請檢查電子郵件地址是否已取消訂閱並與數據庫中的確認字符串匹配。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM