2016-07-08 12 views
1

PHPのチケットシステムで作業しています。私はチケットをチケットに変換します。ユーザーがTicketingシステムからのメールに返信すると、顧客に新しいメールとしてメールが送信されます。メッセージ/メールのスレッドはありません。電子メールの件名にチケットIDを追加した後にメールスレッドを作成する方法

私の問題は、問題の最後に追加されたチケットIDに関連していると思います。 (例えばSubject: Installation Problem [#EMSY45]

私は私がメールを送信するphpmailerのを使用していますヘッダー

にメッセージIDと参照を渡しました。ここで

は私のコードです:

$mail = new PHPMailer(); 
$mail->isSMTP(); // Set mailer to use SMTP 
$mail->Host = str_replace('/', '', $host); // Specify main and backup SMTP servers 
if($outgoing_server_details['smtp_auth'] == 1) 
     $mail->SMTPAuth = true; // Enable SMTP authentication 

$mail->Username = $outgoing_server_details['server_username']; // SMTP username 
$mail->Password = $outgoing_server_details['server_password']; // SMTP password 
$mail->SMTPSecure = $protocol; // Enable TLS encryption, `ssl` also accepted 
$mail->Port = $port; 

$mail->setFrom($outgoing_server_details['from_email_field'], $from_name); 
$mail->addAddress($data['_from'], $to_name); // Add a recipient 
$mail->addReplyTo($outgoing_server_details['from_email_field'], $reply_to_name); 
$message_id = $data['message_id']; 
$mail->AddCustomHeader('In-Reply-To', $message_id); 
$mail->AddCustomHeader('References', $message_id); 

//$mail->addAttachment('/var/tmp/file.tar.gz');   // Add attachments 
//$mail->addAttachment('/tmp/image.jpg', 'new.jpg'); // Optional name 
$mail->isHTML(true);         // Set email format to HTML 

$mail->Subject = $data['subject']; 
$mail->Body = $mail_content; 
$mail->send(); 
+0

あなたはこれらのヘッダを設定することで、正しいことをやっているが、あなたは本当に受信したメッセージのヘッダーを検査する必要があります - あなたは、メッセージID、正しく装着されていることを確信している、と以前のメッセージIDと正確に一致しますか? – Synchro

+0

@シンクロ私は間違いなく、メッセージIDを正しく追加しています。私はIMAPを使ってメールを取得します。メッセージIDも取得します。 Referencesヘッダーにも同じメッセージIDを追加しています。 –

+0

一部のクライアントは、これらのヘッダーに注意を払うことで、他のクライアントよりも優れています。一部のものは、役に立たず、代わりに件名に一致するヒューリスティックに依存しています。すべてのクライアントアプリでこの動作が見られますか? – Synchro

答えて

-1

あなたはEメールの末尾件名にチケットIDを追加する必要がある場合は、これを試してみてください。ボディが設定された後

$mail->Subject = "Installation Problem [".$message_id."]"; 

OR

$mail->Subject = $data['subject'].$message_id;

そして、もう一つの修正

$mail->isHTML(true); //は必ず来るはずです。

すなわち、

$mail->Subject = $data['subject'].$message_id; 
$mail->Body = $mail_content; 
$mail->isHTML(true); 
$mail->send(); 
+0

これは解決策ではなく、化粧品の修正です。 'isHTML'を呼び出すときは問題ありません - コードを読んでください。 – Synchro

+0

@avinash件名の最後にTicket Idを追加することができます。私の問題はメールのスレッドです。最後にチケットIDを追加すると、メールスレッドが機能しません。 –

関連する問題