[英]Why I am getting copy() expects parameter 2 to be a valid path in PHP
[英]Why am I getting an error stating that “mail() expects parameter 1 to be string”?
基本上,我正在嘗試創建批量電子郵件應用程序。
我允許上傳包含幾封電子郵件的CSV文件,一旦我點擊發送,他們就會被處理和發送。
我將CSV文件解析成一個數組,我使用foreach
循環來處理每個電子郵件地址並發送它。
例如,在填充csv
數組之后調用它:
foreach($csv as $email_address)
{
$sendHeaders = "headers here";
$sendSubject = "subject here";
$sendText = "long email text here";
mail($email_address,$sendSubject,$sendText,$sendHeaders);
}
雖然,我似乎得到錯誤:
Warning: mail() expects parameter 1 to be string
它聲明錯誤在第54行,這是我的mail()
函數被調用的行。
有誰知道為什么會這樣?
編輯:
這是我的數組的var_dump,如果有人在它之后:
Array
(
[0] => Array
(
[0] => email1@foo.com
[1] => email2@foo.com
[2] => email3@foo.com
)
)
將你的循環改為:
foreach($csv as $email_addresses) {
foreach($email_addresses as $email_address) {
$sendHeaders = "headers here";
$sendSubject = "subject here";
$sendText = "long email text here";
mail($email_address,$sendSubject,$sendText,$sendHeaders);
}
}
實際上問題是你的$csv
是一個兩級數組,因此它的元素不是字符串,你必須迭代它的元素才能得到實際的電子郵件地址。
此外,如果$sendHeaders
和/或$sendSubject
始終相同,您可以在循環之前移動它們,這樣您就不會每次都設置它們。
最后,正如@Dagon建議的那樣,如果$csv
總是只有一個元素,你可以簡單地做:
foreach($csv[0] as $email_address) {
$sendHeaders = "headers here";
$sendSubject = "subject here";
$sendText = "long email text here";
mail($email_address,$sendSubject,$sendText,$sendHeaders);
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.