いくつかの Delphi XE2 プロジェクトで、「HTTP アップロード」経由でバグ レポートを送信するように Eurekalog を設定しました。これは、PHP スクリプトを使用してバグ レポートをキャッチし、ディレクトリに保存してメールで送信するため、うまく機能します。
<?php
require 'PHPMailerAutoload.php';
foreach ($_FILES as $key => $value)
{
$uploaded_file = $_FILES[$key]['tmp_name'];
$server_dir = 'upload/';
$server_file = $server_dir . date("Y-m-d H-i-s ") . basename($_FILES[$key]['name']);
$ext = strtoupper(pathinfo($server_file, PATHINFO_EXTENSION));
if ($ext != 'EL')
{
continue;
}
if (move_uploaded_file($uploaded_file, $server_file))
{
echo '<html>';
echo '<head>';
echo '<META HTTP-EQUIV="CONTENT-TYPE" CONTENT="TEXT/HTML; CHARSET=UTF-8">';
echo '<title>Bug submission</title>';
echo '</head>';
echo '<body>';
echo 'Thank you!<br />';
echo "<!--\n";
echo "<EurekaLogReply>Thank you for your feedback!</EurekaLogReply>\n";
echo "-->";
echo '</body>';
echo '</html>';
SendBugReportMessage('auserofmyprogram@usersofmyprogram.com',
'A User of my program',
'Eurekalog Bug Report',
'This is a bug report from Eurekalog.',
'eurekalog.bugreport@mysite.com',
$server_file,
basename($server_file)
);
}
}
function SendBugReportMessage($AFrom, $AFromName, $ASubject, $ABodyText, $ARecipient, $AFileToAttach, $ANameOfFile)
{
$email = new PHPMailer();
$email->From = $AFrom;
$email->FromName = $AFromName;
$email->Subject = $ASubject;
$email->Body = $ABodyText;
$email->AddAddress($ARecipient);
$file_to_attach = $AFileToAttach;
$email->AddAttachment($file_to_attach, $ANameOfFile);
return $email->Send();
}
?>
現在、このまったく同じ PHP スクリプトを使用してバグ レポートをアップロードするプログラムがいくつかあります。ただし、この PHP スクリプトに送信されるバグ レポートには、常に「BugReport」という名前が付けられます。では、PHP スクリプトで、バグ レポートを送信したプログラムの名前を取得するにはどうすればよいのでしょうか。プログラム名を添付して保存し、メールの件名にプログラム名を含めることができますか? または、Delphi コードの側に何かを実装することで解決できるでしょうか? それともエウレカログで?
Eurekalog のバージョンは 7.1.0.0 です