smtpsecure - phpmailer教學




PHPMailer GoDaddy服務器SMTP連接被拒絕 (12)

有一天,我遇到了GoDaddy託管網站的一些問題。 我打電話給他們的技術支持,與我交談過的人提出我的問題與我在Windows機箱上的事實有關,並且在Linux機箱上會更好。 對此沒有意見,我同意了,他們讓我轉過身來。

在轉換之後,我的PHPMailer功能讓我感到厭煩。 我已經工作了幾個月,所以我知道我的設置是準確的。 我已經向GoDaddy證實,我試圖發送的帳戶並沒有從他們的角度改變。 用戶端未進行任何更改(如新密碼)。 最重要的是,唯一不同的是我的網站現在託管在Linux服務器上。 而已。

因此,我認為我的PHPMailer困難必須與此相關,因為在服務器轉換發生的確切時刻,已經工作了幾個月的腳本失敗太巧合了。 但為什麼? 我花了一個小時的技術支持,他們發現服務器設置沒有任何問題。 我們驗證了我的設置(只是為了好玩)。 一切看起來都不錯,但是當我發送電子郵件時,我收到此錯誤:

SMTP -> ERROR: Failed to connect to server: Connection refused (111)SMTP Connect() failed.

關於此類錯誤的帖子很多,而且幾乎所有這些都與第一次設置錯誤的設置或省略設置的人有關。 但是,我知道我的設置是完整和準確的,因為我已成功使用它們好幾個月。 為了完整起見,我會在這裡張貼它們:

$mail = new PHPMailer();
$mail->IsSMTP();  //telling the class to use SMTP
$mail->isHTML(true);
$mail->Host         = "smtpout.secureserver.net"; //also tried "relay-hosting.secureserver.net"
$mail->WordWrap     = 50;
$mail->SMTPAuth     = true;
$mail->SMTPSecure   = "ssl";
$mail->Port         = 465;
$mail->Username     = "[email protected]";
$mail->Password     = *******;
$mail->Subject      = "Test Email";
$mail->SMTPDebug = 1;

有沒有人有任何想法為什麼會發生這種情況? 是否存在技術支持人員可能不知道的某些服務器設置,例如可能在我的php.ini文件中? 我和我一起工作過的人盡力幫助我,但他可能根本不知道什麼。

任何幫助表示讚賞。 如果我能提供任何其他信息,請告訴我。 謝謝!

編輯:我還應該提到我做的其他一些嘗試。 無論怎樣,我都得到相同的結果。

1)使用端口587的TLS 2)沒有使用端口25,80和3535的SSL.2)我自己的gmail地址修改服務器,用戶名,密碼等。


2015年1月更新:我只需要解決這個問題。 您需要使用cPanel電子郵件帳戶進行GoDaddy linux託管:

  1. 在電子郵件帳戶部分中,在下拉列表中的每個電子郵件地址旁邊,單擊“配置電子郵件客戶端”選項。
  2. 在下一頁上,向下滾動到“手動設置”。 在這裡,您將看到GoDaddy現在為每個電子郵件地址創建一個定制的傳入/傳出服務器。 因此,使用傳出服務器,SSL,auth:true,端口:465,電子郵件/密碼。

希望有所幫助。


GoDaddy服務器SMTP連接被拒絕。

Bigrock $ mail-> Port = 587; // SMTP ser * vers

GoDaddy $ mail-> Port = 25; // SMTP ser * vers


GoDaddy / Linux(cPanel)/ PHPMailer

require_once("../include/PHPMailer-master/PHPMailerAutoload.php");

$mail = new PHPMailer();
$mail->isSMTP();
$mail->Host         = "a2plcpnXXXXX.prod.iad2.secureserver.net";
$mail->SMTPDebug    = 2; 
$mail->SMTPAuth     = true;
$mail->Username     = "your username";
$mail->Password     = "your password";
$mail->SMTPSecure   = "tls";
$mail->Port         = 587;

隨意使用$ mail-> From$ mail-> FromName值所需的任何電子郵件/名稱。 希望這可以幫助。


使用上面的一些建議,我得到了一個交鑰匙引導站點,並在GoDaddy上的共享主機上運行電子郵件。

我對email.php進行了AJAX調用,其中包含:

 <?php

require 'PHPMailerAutoload.php';

if ($_POST) {
    $name    = $_POST['contactName'];
    $email   = $_POST['contactEmail'];
    $message = $_POST['contactMessage'];

    /* Don't touch */
    $mail = new PHPMailer();
    $mail->isSMTP();
    $mail->Host        = "relay-hosting.secureserver.net";
    $mail->SMTPAuth    = false;
    $mail->setFrom($email, $name);
    /* end */

    /* Configure the address the email will be sent to */
    $mail->addAddress('[email protected]', 'Adam InTae Gerard');
    $mail->Subject = 'Re: StackChampion Inquest';
    /* This is forwarded through a GoDaddy forwarding account */

    $mail->Body    = $message;

    if (!$mail->send()) {
        echo "Mailer Error: " . $mail->ErrorInfo;
    } else {
        echo "Message sent!";
    }
}
?> 

我在GitHub上放了一個工作演示:

https://github.com/Thoughtscript/wp_postlib_godaddy_php_emailer

這是免費使用和開源,但上面列出了相關的代碼。 他們的SMTP服務器顯然存在很多問題 - 我發現你可以通過使用他們提供的不需要身份驗證的中繼服務器繞過它,儘管他們仍然可以與你註冊的一個電子郵件相關聯。

希望能幫到別人! 乾杯!


在與這個問題搏鬥了幾天並讓它開始工作之後,我想我會在2017年更新這個帖子。希望我可以節省一些浪費時間的人。 我在帶有cpanel的Godaddy上主持。 這是我最終遇到的SMTPAutoTLS設置並嘗試了這是缺失的部分。 我收到的錯誤如下:

PHP警告:stream_socket_enable_crypto():對等證書CN = *.prod.iad2.secureserver.net' did not match expected CN=第369行/home/username/public_html/classes/PHPMailer/class.smtp.php *.prod.iad2.secureserver.net' did not match expected CN= localhost' *.prod.iad2.secureserver.net' did not match expected CN=

郵件程序錯誤:SMTP連接()失敗。 https://github.com/PHPMailer/PHPMailer/wiki/Troubleshooting

以下是適用於我的PHPMailer設置。

$mail->isSMTP();
$mail->Host = 'localhost';
$mail->Port = 25;
$mail->SMTPSecure = false;
$mail->SMTPAutoTLS = false;
$mail->SMTPAuth = false;  

好吧,我得到了解決,但不是很好。 在耗盡了我能想到的一切之後,我只是舉起手來告訴GoDaddy將我轉回Windows服務器。 一旦他們這樣做,問題就消失了。 因為我並不關心我所使用的服務器類型,所以這個結果令人滿意,但很難滿足。

所以,我對任何認為他們已經正確設置PHPMailer但無法使其工作的GoDaddy客戶的建議是找出你是否在Linux服務器上。 在我看來 ,像GoDaddy的Linux服務器設置阻止這種類型的郵件交易。 我不能肯定地說,因為我只相信因為我沒能使它發揮作用。 但我可以清楚地說我的PHPMailer設置是準確的,至少在Windows上。

也許這將有助於節省一些時間和挫折。 如果有人有更好的想法,請發布。


如果您的主機擁有自己的電子郵件服務器,您的電子郵件服務器使用以下端口25,465,587。 GoDaddy的設置:

$mail->isSMTP(); 
$mail->Host = localhost; 
$mail->SMTPAuth = true;
$mail->Username = '[email protected]';
$mail->Password = 'password';

//$mail->SMTPSecure = 'tls'; 
//$mail->Port = 587;

在其他服務器上需要使用您的域創建郵箱:

$mail->isSMTP(); 
$mail->Host = localhost; 
$mail->SMTPAuth = true;
$mail->Username = '[email protected]';
$mail->Password = 'password';

//$mail->SMTPSecure = 'tls'; 
//$mail->Port = 587;

我在像@ surfbird0713這樣的Linux上使用GoDaddy。 在我的第32次嘗試中,以下內容也適用於我:

$mail2->Host = localhost;
//$mail2->SMTPAuth = false;
//$mail2->Username = '[email protected]';
//$mail2->Password = '*******';

//$mail2->SMTPSecure = 'tls';

//$mail2->Port = 465;

我以前嘗試使用用戶名,登錄,端口等。當我評論所有這些,並且只是與localhost一起使用它。


我有同樣的問題,但我試過這個

$mail->SMTPAuth = false;

和HOSTNAME: relay-hosting.secureserver.net

而Bingoooooo正在努力

請在SMTP中執行此設置


據Godaddy說,替換

$mail->Host = "smtpout.secureserver.net"; //also tried "relay-hosting.secureserver.net"

$mail->Host = "smtp.secureserver.net"; //also tried "relay-hosting.secureserver.net"

它對我有用。


由於這似乎是一個持續存在的問題,讓我添加自己的經驗。

我們的網站使用PHPMailer,該網站託管在GoDaddy Linux服務器上。 似乎是正確的設置(根據我在SO和goDaddy支持網站上找到的所有內容)如下:

SMTP_SERVER: smtpout.secureserver.net (or alternatively relay-hosting.secureserver.net)
SMTP_PORT: 465 //or 3535 or 80 or 25
SMTP_AUTH: true //always
SMTP_Secure: 'ssl' //only if using port 465

在花了6個多小時嘗試端口的每個變體(25,3535,4655),服務器relay-hosting.secureserver.net,smtpout.secureserver.net:[port]等),用戶名,密碼等。 我打電話給goDaddy。 40分鐘後,據透露:

1)“工作區”電子郵件帳戶正在退休。 這很重要,因為如果你今天有一個goDaddy的電子郵件帳戶,你可能有一個Workspace帳戶。 根據技術支持代表,這是與您的Linux帳戶分開託管的。

2)goDaddy正在轉向cPanel電子郵件帳戶。 歡呼! 時間表? “......在接下來的2到3年裡!”

3)當我與代表打電話時,我將我們的帳戶從Workspace移到了cPanel帳戶。 真的很容易做到。

4)將電子郵件帳戶(包括編輯MX記錄)更改為cPanel電子郵件(與“工作區”電子郵件)後,使用PHPMailer的Web表單電子郵件的相應設置為:

SMTP_SERVER: localhost   //(and I mean literally: "localhost"- in place of smtp.secureserver.net and relay-hosting.secureserver.net, etc.)

......以及其他一切(如上所述)相同......

我用PHPMailer構建的webform在這次改變後運行得很好!

在PHPMailer設置中使用您的cPaneL電子郵件帳戶登錄名(用戶名)和密碼,您的網絡電子郵件將無縫運行!

還有一個額外的好處是,可以在[yourdoman] \ webmail上訪問webmail(任何人都可以使用它嗎?)。 沒有更多神秘的網址要記住! 帳戶可以是IMAP或POP!

不可否認,這意味著您必須使用goDaddy的cPanel電子郵件帳戶,但使用PHPMailer使網絡表單無懈可擊是真正的回報!


經過很多挫折,這對我也有用。

include("includes/class.phpmailer.php");

date_default_timezone_set('UTC');

define('SMTP_HOST','relay-hosting.secureserver.net');
define('SMTP_PORT',25);**
define('SMTP_USERNAME','[email protected]');
define('SMTP_PASSWORD','me123');
define('SMTP_AUTH',false);

$email = '[email protected]';
$firstName = 'Aravind';

$mail = new PHPMailerR();
$mail->IsSMTP();
$mail->SMTPDebug = 1;                 
$mail->SMTPAuth = SMTP_AUTH;                
$mail->Host = SMTP_HOST;
$mail->Port = 25;
$mail->Username = SMTP_USERNAME;
$mail->Password = SMTP_PASSWORD;
$mail->SetFrom(SMTP_USERNAME,'AravindNC.IN');
$mail->AddReplyTo(SMTP_USERNAME,"AravindNC.IN");
$mail->Subject = "Welcome to AravindNC.IN";
$mail->AltBody = "To view the message, please use an HTML compatible email viewer!";
$mail->MsgHTML('This is a test.');
$mail->AddAddress($email, 'Aravind NC');
$mail->Send();

?>






phpmailer