Я отправляю длинный HTML-адрес электронной почты через почтовую функцию php на моем localhost. Он постоянно обрезается, и я не могу понять, почему.
Вот код, создающий отключенную электронную почту:
$message = "<html><body>"; $message .= "<table rules=\"all\" style=\"border-color: #666;\" cellpadding=\"10\">"; $message .= "<tr><td colspan='2'>Application</td></tr>"; $message .= "<tr><td colspan='2'> </td></tr>"; $message .= "<tr><td colspan='2'>Personal Information</td></tr>"; $message .= "<tr><td>Name</td><td>{$fullname}</td></tr>"; $message .= "<tr><td>Gender</td><td>{$_POST['gender']}</td></tr>"; $message .= "<tr><td>Address</td><td>{$home_address}</td></tr>"; $message .= "<tr><td>Phone</td><td>{$_POST['primary-phone']}</td></tr>"; $message .= "<tr><td>Email</td><td>{$_POST['primary-email']}</td></tr>"; $message .= "<tr><td colspan='2'><p> </p></td></tr>"; $message .= "<tr><td colspan='2'>School Info</td></tr>"; $message .= "<tr><td>Address</td><td>{$school_address}</td></tr>"; $message .= "<tr><td>Phone</td><td>{$school_phone}</td></tr>"; $message .= "<tr><td colspan='2'> </td></tr>"; $message .= "<tr><td colspan='2'>Describe Yourself</td></tr>"; $message .= "<tr><td>Marital Status</td><td>{$_POST['marital-status']}</td></tr>"; $message .= "<tr><td>Spouse's Name</td><td>{$_POST['partner-name']}</td></tr>"; $message .= "<tr><td>College Degree?</td><td>{$_POST['college-degree']}</td></tr>"; $message .= "<tr><td>Graduation Year</td><td>{$_POST['grad-year']}</td></tr>"; $message .= "<tr><td>College Name</td><td>{$_POST['college-name']}</td></tr>"; $message .= "<tr><td>College Major</td><td>{$_POST['major']}</td></tr>"; $message .= "<tr><td colspan='2'> </td></tr>"; $message .= "<tr><td colspan='2'>Employment Info</td></tr>"; $message .= "<tr><td>Employer Name</td><td>{$_POST['current-employer']}</td></tr>"; $message .= "<tr><td>Date Employed</td><td>{$_POST['date-employed']}</td></tr>"; $message .= "<tr><td>Employer Address</td><td>{$employer_address}</td></tr>"; $message .= "<tr><td colspan='2'> </td></tr>"; //and on and on for another 40 lines
И вот получившийся код электронной почты:
<html><body><table rules="all" style="border-color: #666;" cellpadding="10"><tr><td colspan='2'>Application</td></tr><tr><td colspan='2'> </td></tr><tr><td colspan='2'>Personal Information</td></tr><tr><td>Name</td><td>Blake</td></tr><tr><td>Gender</td><td>male</td></tr><tr><td>Address</td><td>My Street<br>Town, IN 12345</td></tr><tr><td>Phone</td><td>555-555-5555</td></tr><tr><td>Email</td><td>my.email@gmail.com</td></tr><tr><td colspan='2'><p> </p></td></tr><tr><td colspan='2'>School Info</td></tr><tr><td>Address</td><td>my street<br>my town, IN 12345</td></tr><tr><td>Phone</td><td>555-555-5555</td></tr><tr><td colspan='2'> </td></tr><tr><td colspan='2'>Describe Yourself</td></tr><tr><td>Marital Status</td><td>married</td></tr><tr><td>Spouse's Name</td><td>Emily</td></tr><tr><td>College Degree?</td><td>yes</td></tr><tr><td>Graduation Year</td><td>2008</td></tr><tr><td>College Name</td><td>Purdue</td></tr>
Как вы можете видеть (или, может быть, не в зависимости от форматирования), электронная почта отключается после имени колледжа, хотя есть еще много информации.
В чем проблема? $ message слишком велико? локальный почтовый сервер отправляет слишком быстро? (Я использую Mercury, который был установлен с XAMPP)
благодаря
SMTP имеет ограничение на длину строк, либо 1024, либо 2048 столбцов, я не уверен. Помещайте новые строки ( \r\n
) в вашем теле. Я предлагаю после каждого </tr>
. Это не повлияет на способ отображения таблицы, но это должно предотвратить усечение.
Проверьте свой метод mail (), он должен включать ваш content-type
, например:
mail($email, 'Thank You for Contacting PHPglue', $msg, "From: PHPglue@PHPglue.com\r\ncontent-type: text/html");