Пожалуйста, прочитайте, прежде чем пометить это как дубликат. Я перепробовал все!
Я пытался использовать SwiftMailer и PHPMailer, которые я использовал ранее, для отправки электронных писем с формы моего веб-сайта. Почему-то, последние несколько дней я не заставлял их работать. Каждый раз, независимо от настроек, я получаю ошибку 110 — Тайм-аут соединения с сервером SMTP. Я попытался использовать аутентификацию из своей учетной записи gmail и учетной записи электронной почты 1and1.com. Я даже добавил чек, используя fsockopen
и Gmail, Godaddy ни SMTP-сервер 1and1 может быть подключен к. И я даже дважды звонил 1and1, чтобы спросить о брандмауэрах и обо всем, что могло бы помешать моим электронным письмам, и они сказали, что не знают, в чем может быть проблема. Я перепробовал все перечисленное в нескольких вопросах Stackoverflow и не могу это исправить. Есть что-нибудь, что могло бы предотвратить это? Может быть, мое интернет-соединение (пробовал дома и на работе)? Я очень потерян! Мой код для PHPMailer и SwiftMailer будет вставлен ниже. Пожалуйста, помните, что я пытался использовать порт 465 / ssl и порт 587 / tls, и ни один из них не работал.
require 'PHPMailerAutoload.php';
$mail = new PHPMailer();
$mail->isSMTP();
$mail->Host = 'smtp.example.com';
$mail->Port = 465;
$mail->SMTPAuth = true;
$mail->Username = '[email protected]';
$mail->Password = 'password';
$mail->SMTPSecure = 'ssl';
$mail->From = '[email protected]';
$mail->addAddress('[email protected]');
$mail->isHTML(true);
$checkconn = fsockopen($mail->Host, $mail->Port, $errno, $errstr, 5);
if($_GET['formName'] == 'join')
{
$text = 'Name: <b>' . $_POST['first_name_join']. " " .$_POST['last_name_join']. "</b>".
"<br>Phone: <b>".$_POST['phone_join']. "</b>".
"<br>Email: <b>".$_POST['email_join']. "</b>".
"<br>Date of Birth: <b>".$_POST['birth_month']. "/" .$_POST['birth_day']. "/" .$_POST['birth_day']. "</b>".
"<br>Message: <br><b>".$_POST['message_join']. "</b>";
}
else
{
$text = 'Name: <b>' . $_POST['full_name_sponsor']. "</b>".
"<br>Company/Organization: <b>" . $_POST['company_sponsor']. "</b>".
"<br>Phone: <b>".$_POST['phone_sponsor']. "</b>".
"<br>Email: <b>".$_POST['email_sponsor']. "</b>".
"<br>Message: <br><b>".$_POST['message_sponsor']. "</b>";
}$mail->Subject = $_GET['formName'] == 'join' ? 'Join Inquiry' : 'Sponsorship Inquiry' ;
$mail->Body = $text;
if (!$checkconn)
{
echo "($errno) $errstr\n\n";
}
if(!$mail->send()) {
echo 'Message could not be sent.';
echo 'Mailer Error: ' . $mail->ErrorInfo;
} else {
echo 'Message has been sent';
}
а также
require_once 'swiftmailer/swift_required.php';// Create the Transport
$transport = Swift_SmtpTransport::newInstance('smtp.example.com', 587)
->setUsername('[email protected]')
->setPassword('password');// Create the Mailer using your created Transport
$mailer = Swift_Mailer::newInstance($transport);
if($_GET['formName'] == 'join')
{
$text = 'Name: <b>' . $_POST['first_name_join']. " " .$_POST['last_name_join']. "</b>".
"<br>Phone: <b>".$_POST['phone_join']. "</b>".
"<br>Email: <b>".$_POST['email_join']. "</b>".
"<br>Date of Birth: <b>".$_POST['birth_month']. "/" .$_POST['birth_day']. "/" .$_POST['birth_day']. "</b>".
"<br>Message: <br><b>".$_POST['message_join']. "</b>";
}
else
{
$text = 'Name: <b>' . $_POST['full_name_sponsor']. "</b>".
"<br>Company/Organization: <b>" . $_POST['company_sponsor']. "</b>".
"<br>Phone: <b>".$_POST['phone_sponsor']. "</b>".
"<br>Email: <b>".$_POST['email_sponsor']. "</b>".
"<br>Message: <br><b>".$_POST['message_sponsor']. "</b>";
}
// Create a message
$subject = $_GET['formName'] == 'join' ? 'Join Inquiry' : 'Sponsorship Inquiry' ;
$message = Swift_Message::newInstance($subject)
->setFrom(array('[email protected]'))
->setTo(array('[email protected]'))
->setBody($text, 'text/html');
// Send the message
$result = $mailer->send($message);
Ну, это может быть случай, когда интернет-провайдер блокирует SMTP. И я знаю, что не даю прямого решения. Это не помешает попробовать другие сервисы для отправки вашей почты через API, тем самым полностью исключая SMTP.
У меня есть хороший опыт с Mailgun а также мандрил . Они оба имеют документацию по расширению и PHP SDK для API, а также могут использоваться через SMTP.
С наилучшими пожеланиями.
Других решений пока нет …