更改附件名称:wp_mail PHP
Change names of attachments : wp_mail PHP
我正在使用 wp_mail 发送带有我网站上的表格的邮件。但是当我附加一些文件时,名称类似于 "phpr0vAqT" 或 "phpFO0ZoT"。
$files = array(); //Array pour les fichiers
$count = count(array_filter($_FILES['fichier']['name'])); //Compte le nombre de fichiers
for($i=0;$i<$count;$i++){ //boucle sur chaque fichier
array_push($files, $_FILES['fichier']['tmp_name'][$i]); //insere le fichier dans l'array $files
}
我认为问题出在:['tmp_name'],但我不知道我可以更改什么,因为 wp_mail 需要一条路径。
然后,我正在这样做:
wp_mail($to, $subject, $message, $headers, $files);
发送邮件。
谢谢。
您不能使用 wp_mail 更改附件名称。
一个可能的解决方案是:
- 使用正确的名称保存文件。
- 用 wp_mail 发送新文件。
- 删除文件。
上面的方法是正确的,下面是一个例子,说明如何在 php / wp.希望这对您有所帮助!
if(!empty($_FILES['upload-attachment']['tmp_name'])){
//rename the uploaded file
$file_path = dirname($_FILES['upload-attachment']['tmp_name']);
$new_file_uri = $file_path.'/'.$_FILES['upload-attachment']['name'];
$moved = move_uploaded_file($_FILES['upload-attachment']['tmp_name'], $new_file_uri);
$attachment_file = $moved ? $new_file_uri : $_FILES['upload-attachment']['tmp_name'];
$attachments[] = $attachment_file;
}
完成附件后,您应该清理
unlink($attachment_file);
要更改附件名称,您应该使用 phpmailer_init
操作直接访问 wp_mail()
中使用的 PHPMailer
实例,而不是将 $files
作为函数参数传递:
function prefix_phpmailer_init(PHPMailer $phpmailer) {
$count = count($_FILES['fichier']['tmp_name']); //Count the number of files
for ($i = 0; $i < $count; $i++) { //loop on each file
if (empty($_FILES['fichier']['error'][$i]))
$phpmailer->addAttachment($_FILES['fichier']['tmp_name'][$i], $_FILES['fichier']['name'][$i]); //Pass both path and name
}
}
add_action('phpmailer_init', 'prefix_phpmailer_init');
wp_mail($to, $subject, $message, $headers);
remove_action('phpmailer_init', 'prefix_phpmailer_init');
我正在使用 wp_mail 发送带有我网站上的表格的邮件。但是当我附加一些文件时,名称类似于 "phpr0vAqT" 或 "phpFO0ZoT"。
$files = array(); //Array pour les fichiers
$count = count(array_filter($_FILES['fichier']['name'])); //Compte le nombre de fichiers
for($i=0;$i<$count;$i++){ //boucle sur chaque fichier
array_push($files, $_FILES['fichier']['tmp_name'][$i]); //insere le fichier dans l'array $files
}
我认为问题出在:['tmp_name'],但我不知道我可以更改什么,因为 wp_mail 需要一条路径。
然后,我正在这样做:
wp_mail($to, $subject, $message, $headers, $files);
发送邮件。
谢谢。
您不能使用 wp_mail 更改附件名称。
一个可能的解决方案是:
- 使用正确的名称保存文件。
- 用 wp_mail 发送新文件。
- 删除文件。
上面的方法是正确的,下面是一个例子,说明如何在 php / wp.希望这对您有所帮助!
if(!empty($_FILES['upload-attachment']['tmp_name'])){
//rename the uploaded file
$file_path = dirname($_FILES['upload-attachment']['tmp_name']);
$new_file_uri = $file_path.'/'.$_FILES['upload-attachment']['name'];
$moved = move_uploaded_file($_FILES['upload-attachment']['tmp_name'], $new_file_uri);
$attachment_file = $moved ? $new_file_uri : $_FILES['upload-attachment']['tmp_name'];
$attachments[] = $attachment_file;
}
完成附件后,您应该清理
unlink($attachment_file);
要更改附件名称,您应该使用 phpmailer_init
操作直接访问 wp_mail()
中使用的 PHPMailer
实例,而不是将 $files
作为函数参数传递:
function prefix_phpmailer_init(PHPMailer $phpmailer) {
$count = count($_FILES['fichier']['tmp_name']); //Count the number of files
for ($i = 0; $i < $count; $i++) { //loop on each file
if (empty($_FILES['fichier']['error'][$i]))
$phpmailer->addAttachment($_FILES['fichier']['tmp_name'][$i], $_FILES['fichier']['name'][$i]); //Pass both path and name
}
}
add_action('phpmailer_init', 'prefix_phpmailer_init');
wp_mail($to, $subject, $message, $headers);
remove_action('phpmailer_init', 'prefix_phpmailer_init');