mail
機能を持つ電子メールにOutlook予定表ファイル(.ics)を添付する必要があります。電子メールに.icsを添付するには?
これは私の今のところですが、動作しません。
<?php
$firstname = $_POST["firstname"];
$lastname = $_POST["lastname"];
$email = $_POST["email"];
$companyname = $_POST["company"];
$file = "webinar-041016.ics";
$content = file_get_contents($file);
$content = chunk_split(base64_encode($content));
$EmailTo = "[email protected]";
$Subject = "New Webinar Registration";
// prepare email body text
$Body .= "Firstname: ";
$Body .= $firstname;
$Body .= "\n";
$Body .= "Lastname: ";
$Body .= $lastname;
$Body .= "\n";
$Body .= "Email: ";
$Body .= $email;
$Body .= "\n";
$Body .= "Company Name: ";
$Body .= $companyname;
$Body .= "\n";
$headers = 'From: [email protected]' . "\r\n" .
'Reply-To: [email protected]' . "\r\n" .
'X-Mailer: PHP/' . phpversion();
$conf_subject = "Registration Complete ...";
$conf_body = "Dear " . $firstname . ",\n\nThank you..." ;
$conf_body .= "Content-Type: text/calendar; name=\"".$file."\"\r\n" ;
$conf_body .= "Content-Transfer-Encoding: quoted-printable\r\n";
$conf_body .= "Content-Disposition: attachment; filename=\"".$file."\"\r\n\r\n";
$conf_body.= $content."\r\n\r\n";
$conf_headers = 'From: [email protected]' . "\r\n" .
'Reply-To: [email protected]' . "\r\n" .
'X-Mailer: PHP/' . phpversion();
// send email
$success = mail($EmailTo, $Subject, $Body, $headers);
$conf_mail = mail($email, $conf_subject, $conf_body, $conf_headers);
// redirect to success page
if ($success){
echo "success";
}else{
echo "invalid";
}
//Attached is an Outlook calendar invite so that you can plan your day accordingly.\n\n
?>
ここで何をすればよいですか?私のエンコーディングは間違っている?
あなたのスクリプトはインジェクション攻撃に公開されています。あなたのMIME構造は存在しません。無効なエンコードの機会がたくさんあります。 PHPMailer(https://github.com/PHPMailer/PHPMailer)を使用すると、あなたの質問にタグを付けたように簡単に見つけることができます。現在のバージョンでは、ICSビルダークラスもバンドルされています。 – Synchro
メールオプションで解決策が必要です。 – stormec56
なぜですか? PHPMailerはデフォルトで 'mail()'を使いますが、あなたの問題は 'mail'を呼び出すことではなく、それを渡すための有効なメッセージを構築することにあります。 – Synchro