我有一系列電子郵件,API 使用這些電子郵件一次性發送多封電子郵件
我通過控制器收到的陣列是這樣的:
email_users:["[email protected]","[email protected]","[email protected]"]
現在我想遍歷 api,用陣列中的每封電子郵件重復 api url。我嘗試回圈,但結果給了我包含來自陣列的所有電子郵件的 url 鏈接,例如:
...com/[email protected],[email protected],[email protected],&subject=asd&message=asd
現在我想以這種格式回圈包含來自陣列的每封電子郵件的 api url:
...com/[email protected],&subject=asd&message=asd
...com/[email protected],&subject=asd&message=asd
...com/[email protected],&subject=asd&message=asd
這是我當前的代碼:
$emails = $request->email_users;
$emailadd = '';
foreach($emails as $email) {
$emailadd .= $email.",";
$subject = $request->subject;
$subject_encode = urlencode($subject);
$msg = $request->message;
$msg_encode = urlencode($msg);
$url = 'https://...com/SEND_EMAIL.php?email='.$emailadd.'&subject='.$subject_encode.'&message='.$msg_encode;
}
更新:我使用這種方法發送這個 api:
foreach($emails as $email) {
$emailadd .= $email.",";
$subject = $request->subject;
$subject_encode = urlencode($subject);
$msg = $request->message;
$msg_encode = urlencode($msg);
$url = Http::accept('application/json')->withToken($token)->post('https://...com/SEND_EMAIL.php?email='.$emailadd.'&subject='.$subject_encode.'&message='.$msg_encode))
}
然后,如果 API url 成功,則頁面使用 if else 條件回傳帶有成功訊息的頁面:
if($url->successful()) {
return back()->with('flash_message_success','SMS Sent!');
} else {
return back()->with('flash_message_error','SMS Sending Failed!');
}
uj5u.com熱心網友回復:
例如,您有這樣的請求:
{
"subject":"asd",
"message":"asd",
"email_users":[
"[email protected]",
"[email protected]",
"[email protected]"
]
}
您可以使用以下方式進行轉換foreach:
$urls = [];
foreach ($request->email_users as $email) {
$urls[] = 'https://...com/SEND_EMAIL.php?' . http_build_query([
'email' => $email,
'subject' => $request->subject,
'message' => $request->message,
]);
}
dd($urls);
輸出 :
array:3 [
0 => "https://...com/[email protected]&subject=asd&message=asd"
1 => "https://...com/[email protected]&subject=asd&message=asd"
2 => "https://...com/[email protected]&subject=asd&message=asd"
]
更新(來自評論)
當你使用 Laravel HTTP 客戶端時,你可以使用:
foreach ($request->email_users as $email) {
$params = [
'email' => $email,
'subject' => $request->subject,
'message' => $request->message,
];
Http::accept('application/json')
->withToken($token)
->post('https://...com/SEND_EMAIL.php', $params)
}
return back();
uj5u.com熱心網友回復:
您正在將電子郵件連接到$emailadd變數,這就是為什么每次都會覆寫 URL。
把這個改成$emailadd .= $email.",";這個$emailadd = $email.",";
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/435923.html
