請在將此標記爲重複項之前閱讀。我已經嘗試了一切!SMTP連接超時PHP電子郵件
我一直在嘗試使用之前使用過的SwiftMailer和PHPMailer從我的網站表單發送電子郵件。出於某種原因,在過去的幾天裏,我沒有得到他們的工作。每次,無論設置如何,我都會收到錯誤110 - 連接超時到smtp服務器。我嘗試使用我的gmail帳戶和1and1.com電子郵件帳戶進行身份驗證。我甚至還使用fsockopen
和gmail添加了一個支票,godaddy也不會和1and1的smtp服務器連接。我甚至曾打電話給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);
你試過重啓apache嗎? – talsibony 2014-10-04 19:11:44
我沒有使用localhost。我其實已經將網站上傳到我的1and1服務器。 – 2014-10-04 19:37:05
您應該從服務器上的shell中嘗試'telnet mail.example.com 25'以消除PHP配置。 – Synchro 2014-10-04 20:16:17