Pues no sé que más decirte revisa si en ese scritp recibes el valore de $archivo_id.. prueba:
$mail->AddEmbeddedImage($archivo,'foto', $archivo_name);
$mail->Body="<img src='cid:foto'>";
(de todas formas insisto que debería ser con respecto a $archivo -> $archivo_tmp_name y mejor $_FILES['archivo']['tmp_name'])
Un saludo,
PD: Por qué no usas los arrays superglobales para TODA variable externa? .. Revisa esta FAQ al respecto:
http://www.forosdelweb.com/showthrea...989#post238989