web-dev-qa-db-ja.com

PHPMailer GoDaddyサーバーSMTP接続拒否

先日、GoDaddyがホストするサイトで問題が発生していました。私は彼らの技術サポートに電話をしました、そして、私が話した人は、私の問題が私がWindowsボックスにいて、Linuxボックスでよりよく役立ったという事実に関連していると示唆しました。これについて意見がないので、私は同意し、彼らは私を切り替えました。

その移行をきっかけに、PHPMailerの機能がなくなりました。私はこれを何ヶ月も使用してきたので、私の設定が正確であることを知っています。 GoDaddyに、送信しようとしているアカウントが彼らの観点から変わっていないことを確認しました。ユーザー側での変更は行われていません(新しいパスワードなど)。結論として、唯一異なるのは、私のサイトがLinuxサーバーでホストされていることです。それでおしまい。

PHPMailerの難しさはそれに関連しているに違いないと思います。サーバーの移行が発生した瞬間に数か月間機能していたスクリプトが失敗するのは偶然の一致であるためです。しかし、なぜ?私は彼らの技術サポートに1時間を費やしましたが、サーバーの設定に何の問題もありません。設定を確認しました(楽しみのためだけです)。すべてがよさそうですが、メールを送信すると、このエラーが表示されます。

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アドレス.

25
Alex

これは継続的な問題であると思われるので、私自身の経験を追加させてください。

私たちのウェブサイトはPHPMailerを使用しており、サイトはGoDaddy Linuxサーバーでホストされています。 seemedが正しい設定(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

ポートのあらゆるバリエーション(25、3535、4655)、サーバーrelay-hosting.secureserver.net、smtpout.secureserver.net:[port]など)、ユーザー名、パスワードなどを6時間以上試行した後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で作成したWebフォームは、この変更後に完全に機能しました!

PHPMailerセットアップでcPaneLメールアカウントログイン(ユーザー名)とパスワードを使用すると、Webメールがシームレスに機能します!

追加のボーナスは、[yourdoman]\webmailでWebメールにアクセスできるということです(誰もがこれを使用しなくなりましたか?)。覚えておくべき不可解なURLはもうありません!アカウントはIMAPまたはPOPにすることができます!

確かに、これはgoDaddyのcPanelメールアカウントを使用する必要があることを意味しますが、PHPMailerでWebフォームを問題なく動作させることは本当の報酬でした!

36
globalSchmidt

@ surfbird0713のようなLinuxでGoDaddyを使用しています。 32回目の試みでは、次のこともうまくいきました。

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

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

//$mail2->Port = 465;

以前は、ユーザー名、ログイン、ポートなどを試してみました。これらすべてをコメントアウトして、localhostで実行するとうまくいきました。

39
Nate Byram

私はこの問題を何週間も経験しています。最後に、解決しました。まず、問題の原因を説明します(経験したとおり)。 GoDaddyでは、ポート_25_、_465_、_80_のみを取得できます。したがって、これらの3つのポートのいずれも使用していないSMTPサーバーにはアクセスできません。ただし、例ごとにGMAILからSMTPを使用している場合、または他のリプレイサーバー(特にベルカナダから、ポート_465_で)を使用している場合、GoDaddyからのリレー要求はブロックされます-したがって、Connection Refused (111)。はい、彼らはホスティングサービスの競合他社です...ですから、この問題が彼らの間でいつ解決されるかについてあなた自身の結論を引き出してください。さらに悪いことに、GoDaddyが提供する_relay-hosting.secureserver.net_からメールを送信すると、メールを送信するのに数分かかる可能性のある長いキューイングの大きな不便に直面しています。さらに悪いことに、Bell Canada(またはBellアフィリエイト)のメールアカウントを持つユーザーには、このリレーサーバーからのメールは表示されません。メールはスパムボックスに届きません。電子メールがベルによって完全にブロックされているため(彼らの言い訳= GoDaddyからのスパムが多すぎる)。

だから、最近私はこれをやったし、それは私のためにうまくいった。 GoDaddyでホスティングサービスを利用している場合は、メールアカウントを登録してください。次に、その電子メールアカウント、例_[email protected]_を使用して、PHPMailでこれを行います。

_$mail = new PHPMailer();
$mail->IsSMTP();
$mail->Host = "smtpout.secureserver.net";
$mail->Username = "[email protected]"; /*Substitute with your real email*/
$mail->Password = "myverylongpassword"; /*Substitute with your real password*/
$mail->SMTPAuth = true;
$mail->Port = 80;
_

その後、通常のPHPMailingを実行します。それがあなたにも同じことを願っています。

4
KLL

多くのフラストレーションの後、これは私にとってもうまくいきました。

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();

?>
4
Sagar Anand

これらはGoDaddyのSMTP設定になります。

require("PHPMailer-master/PHPMailerAutoload.php");
$mail = new PHPMailer();
$mail->IsSMTP();
$mail->SMTPDebug  = 2;
$mail->From = "[email protected]";
$mail->FromName = "name";
$mail->Host = "localhost"; 
$mail->SMTPAuth = false; 
$mail->SMTPSecure = false;
$mail->SMTPAutoTLS = false;
3
Abdulrehman

私は同じ問題を抱えていますが、私はこれを試しました

$mail->SMTPAuth = false;

およびHOSTNAME:relay-hosting.secureserver.net

そしてBingooooooその働き

sMTPでこの設定を一度だけ行ってください

2
Chintan Gor

上記のアドバイスを使用して、ターンキーbootstrapサイトを立ち上げ、GoDaddyの共有ホスティングで電子メールを実行することができました。

AJAXを含むemail.phpの呼び出しを行いました。

 <?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サーバーには明らかに多くの問題があります。登録済みの電子メールアカウントのいずれかに関連付けられている場合でも、認証を必要としない提供されたリレーサーバーを使用することで、これを回避できることがわかりました。

それが誰かを助けることを願っています!乾杯!

2
Adam Gerard

数日間この問題に取り組み、機能するようになった後、2017年にこのスレッドを更新することを考えました。私はGopanelでcpanelを使用してホストされています。それは私がついに見つけたSMTPAutoTLS設定であり、それが欠けている部分でした。私が受け取っていたエラーは次のとおりです。

PHP警告:stream_socket_enable_crypto():ピア証明書CN = *.prod.iad2.secureserver.net' did not match expected CN=localhost 'の/home/username/public_html/classes/PHPMailer/class.smtp.phpの369行目

メーラーエラー:SMTP connect()が失敗しました。 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;  
1

Godaddyによると、交換

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

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

それは私のために働いた。

1
Chicken Man

これを変更:

$mail->Host = 'smtpout.secureserver.net:465';
$mail->SMTPSecure = "ssl";

これに:

$mail->Host = 'smtpout.secureserver.net:25';

そしてそれは私のために働いた!

1
Ronen

2015年1月の更新:この正確な問題を解決する必要がありました。 GoPaddy LinuxをcPanelメールアカウントでホストする必要があります。

  1. [メールアカウント]セクションで、プルダウンの各メールアドレスの横にある[メールクライアントを設定]オプションをクリックします。
  2. 次のページで、「手動設定」までスクロールします。ここで、GoDaddyが各電子メールアドレスに個別の受信/送信サーバーを作成することがわかります。したがって、送信サーバー、SSL、auth:true、ポート:465、電子メール/パスワードを使用します。

お役に立てば幸いです。

1
user3349250

WordPressでcPanelとWPFormsを使用している場合

私が助けたのは、cPanelから電子メールアドレスを作成し、SSLまたは非SSLのいずれかで手動設定セクションの設定を使用することです

enter image description here

1
Arlan T

ホスティングに独自のメールサーバーがある場合、メールサーバーは次のポート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;
1
Karen Danielyan

まあ、私はこれを解決しましたが、良い方法ではありませんでした。考えられるすべてを使い果たした後、私は手を挙げてGoDaddyにWindowsサーバーに戻すように指示しました。彼らがそれをするや否や、問題は消えました。どのタイプのサーバーを使用しているかはあまり気にしないので、この結果は満足のいくものですが、満足のいくものではありません。

したがって、PHPMailerは正しくセットアップされているが動作しないと考えているGoDaddyのお客様への私のアドバイスは、Linuxサーバーを使用しているかどうかを調べることです。それlooks GoDaddyは、このタイプのメールトランザクションをブロックするようにLinuxサーバーを設定しているようです。私はそれを機能させるのに失敗したためにそれを信じているだけなので、私はそれを決定的に言うことはできません。しかし、少なくともWindowsでは、PHPMailerのセットアップが正確であったとはっきり言えます。

たぶんこれは誰かの時間とフラストレーションを節約するのに役立つでしょう。誰かがより良いアイデアを持っている場合は、投稿してください。

1
Alex

この問題が発生したばかりで、GoDaddyに連絡すると、MXがローカルからリモートに切り替わり、すぐに問題が解決しました!まだこの問題が発生している方はお気軽に。

0
Austin Tans

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の値には、任意の電子メール/名前を自由に使用できます。お役に立てれば。

0
sysnomad

Godaddy向けにRd-MailformとPHPmailerをセットアップする適切な方法への回答を求めている人のために、2019年8月25日更新。

まず、Githubから最新のファイルがあることを確認してください。

次に、SMTPとGODaddyを使用したCpanel電子メールの正しい設定です

次のファイルを編集します:rd-mailform.config.json(このファイルを使用しない場合は、rd-mailform.phpにハードコードします)

編集するファイルは次のとおりです。rd-mailform.config.json

~~~
 "useSmtp": false,
 "Host": "localhost",              
 "port": 25,                                                     
 "username": "[email protected]",                   
 "password": "yourpasswordforthataccount",                       
 "recipientEmail":  "youremailaddress"  
~~~ 

編集した後、rd-mailform.phpを開いて、次のように次の行を編集します。// SMTP認証を使用するかどうか

            $mail->SMTPAuth = false;
            $mail->SMTPAutoTLS = false; 
            $mail->SMTPSecure = "tls";

これは、phpmailerでrd-mailformを使用するすべてのGodaddyサーバーで機能するはずです。

-D

0
Dave Nugent

Godaddyは悪夢です。

古いワークスペースのメールアカウントを使用していて、cpanelに不慣れな場合は、これを試してください

require '/home/content/94/8357694/html/SHTECH/server/PHPMailer.php';
use PHPMailer\PHPMailer\PHPMailer;

function sendmail($to,$subject,$message,$name)
{

define('SMTP_Host','relay-hosting.secureserver.net');
define('SMTP_PORT',25);
define('SMTP_AUTH',true);



              $mail             = new PHPMailer();

              $mail->IsSMTP();
              $mail -> SMTPDebug = 1;
              $mail->Host       = "smtpout.secureserver.net";
              $mail->SMTPAuth   = SMTP_AUTH;
              $mail->Port       = 80;
              $mail->Username   = "[email protected]";
              $mail->Password   = "allen1";
              //$mail->SMTPSecure = 'ssl';
              $mail->SetFrom('[email protected]', 'Cagney');
              $mail->AddReplyTo("[email protected]","Cagney");
              $mail->Subject    = $subject;
              $body             = $message;
              $mail->AltBody    = "To view the message, please use an HTML compatible email viewer!";
              $mail->MsgHTML($body);
              $address = $to;
              $mail->AddAddress($address, $name);
              if(!$mail->Send()) {
                  return 0;
              } else {
                    return 1;
              }




}
0
cagney