Не могу отправить вложения с SwiftMailer
Я использую swiftmailer для отправки писем. Пользователь может выбрать вложение. Проблема в том, что даже при вложении в 1 КБ сценарий выполняется более 30 секунд, что приводит к фатальной ошибке. Я использую XAMPP и smtp.gmail.com для отправки сообщений. tmp_path кажется правильным. Вот мой код:
require_once '../mailer/lib/swift_required.php';
sendMessage();
function validate($data)
{
$data = trim($data);
$data = stripslashes($data);
$data = htmlspecialchars($data);
return $data;
}
function sendMessage()
{
$SEND_MAIL_TO = "jaroslawwatroba@wp.pl";
$MAILER_FROM = "jarekwatroba@gmail.com";
$MAILER_USERNAME = "jarekwatroba@gmail.com";
$MAILER_PASSWORD = "***";
$MAILER_SMTP = "smtp.gmail.com";
$MAILER_SMTP_PORT = 465;
$MAILER_SMTP_USE_SSL = true;
if (!isset($_POST["sent"]))
return;
$name = validate($_POST["name_text"]);
$email = validate($_POST["email_text"]);
$phone = validate($_POST["phone_text"]);
$interest = validate($_POST["interest_text"]);
$language = validate($_POST["language_text"]);
$message = validate($_POST["message_text"]);
if (empty($name) || empty($email))
{
echo "<p><strong style=\"color: red\">Please fill in the required fields!</strong></p>";
return;
}
if (!filter_var($email, FILTER_VALIDATE_EMAIL))
{
echo "<p><strong style=\"color: red\">Please fill in a correct email address!</strong></p>";
return;
}
$message = Swift_Message::newInstance()
->setSubject("Contact by form: ".$name." ".$interest." ".$language)
->setFrom(array($MAILER_FROM))
->setTo(array($SEND_MAIL_TO))
->setBody($message);
echo "Path: ".$_FILES["attachment_text"]["tmp_name"];
$attachement = Swift_Attachment::fromPath($_FILES["attachment_text"]["tmp_name"], $_FILES["attachment_text"]["type"]);
$attachement->setFilename($_FILES["attachment_text"]["name"]);
$message->attach($attachement);
if (!$MAILER_SMTP_USE_SSL)
$transport = Swift_SmtpTransport::newInstance($MAILER_SMTP, $MAILER_SMTP_PORT);
else
$transport = Swift_SmtpTransport::newInstance($MAILER_SMTP, $MAILER_SMTP_PORT, 'ssl');
$transport->setUsername($MAILER_USERNAME);
$transport->setPassword($MAILER_PASSWORD);
$mailer = Swift_Mailer::newInstance($transport);
$result = $mailer->send($message);
if ($result == 1)
echo "<p><strong style=\"color: green\">Your message is sent!</strong></p>";
else
echo "<p><strong style=\"color: green\">Your message wasn't successfully sent...</strong></p>";
}