2016-11-03 3 views
1

私はこのプロジェクトを作成しています。システムが登録を受け入れ、メールで情報を所有者に送信します。私はこれを行うにはPEAR:Mail Mimeを使用しています。メールの送信はローカルコンピュータで実際に行われていますが、このプロジェクトをホスティングサイト(GoDaddy)にアップロードした後はもう送信しません。PEAR:Mail Mime - ホスティングサイトにアップロードした後でメールを送信できない - GoDaddy

私は、メールの送信を妨害するものを見るためにエラーチェックをした、と私はこのメッセージを受け取っ:

は、SSL接続に失敗しました://smtp.gmail.com:465 [SMTP:に失敗しました。 (:、-1レスポンス:コード)接続が拒否:ソケットを接続]

私は電子メールメッセージを送信するためにGmailアカウントを使用していますが、それを行うには、このコードを使用します。

/* INCLUDE PREREQUISITES IN ORDER TO SEND AN EMAIL */ 
include('../../application/third_party/Mail-1.3.0/Mail-1.3.0/Mail.php'); 
require_once '../../application/third_party/Mail_Mime-1.10.0/Mail_Mime-1.10.0/Mail/mime.php'; 

/* HEADER INFORMATION */ 
$from = '<***@gmail.com>'; 
$to = '<***@gmail.com>'; 
$subject = 'Someone registers'; 
$crlf = "\r\n"; 

$headers = array(
    'From' => $from, 
    'To' => $to, 
    'Subject' => $subject 
); 

// CREATING THE MIME MESSAGE 
$mime = new Mail_mime($crlf); 

$html = ' 
    <html> 
     <body> 
      Message here 
     </body> 
    </html>'; 

// SETTING THE BODY OF THE EMAIL TO HTML 
$mime->setHTMLBody($html); 

$body = $mime->get(); 
$headers = $mime->headers($headers); 

// SENDER INFORMATION 
$smtp = Mail::factory('smtp', array(
    'host' => 'ssl://smtp.gmail.com', 
    'port' => '465', 
    'auth' => true, 
    'username' => '***@gmail.com', 
    'password' => '***' 
)); 

$mail = $smtp->send($to, $headers, $body); 

if (PEAR::isError($mail)) { 
    $errormessage = '<p>'.$mail->getMessage().'</p>'; // ERROR MESSAGE 
    $mail->getUserInfo(); 
} 

はい、私は回るGMail送信者アカウントのAccess for less secure appsに掲載されました。

はい、エラー表示がオンになっています。

ini_set('display_errors', 1); 
error_reporting(E_ALL); 

私が逃した可能性のある解決策はありますか?

答えて

0

送信メールに関する回答は、Sending email through gmail SMTP on GoDaddyです。

これはGmailのSSLポート(465)と他のポート、例えば25と587を制限するGoDaddyのためです。この記事のおかげで、GitHubがその問題を解決しました。ユーザーは代わりにGoDaddyのメールサーバーを使用します。

しかし、私はまだ実行してGmailに使用して電子メールを送信するために管理:

$smtp = Mail::factory('smtp'); 
/* SETTINGS WILL BE IN DEFAULT (E.G. HOST:LOCALHOST, PORT: 45) */ 

代わり

$smtp = Mail::factory('smtp', array(
    'host' => 'ssl://smtp.gmail.com', 
    'port' => '465', 
    'auth' => true, 
    'username' => '***@gmail.com', 
    'password' => '***' 
)); 

のしかし、受信機は、「迷惑メール」として送信された電子メールを受信 - 結果はということになります受信者はシステムからの着信電子メールに気付かないでしょう(良い選択ではありません)。送信者の[送信済み]項目にはレコードがありません(電子メールを送信するために電子メールを使用したが、完全には送信していないことを意味します)。

私たちはGoDaddyのメールサーバーに戻ってきました。まず、GoDaddy自身が発行したWhat is the name of my hosting account's relay server?にチェックを入れて、ホスティングアカウントのリレーサーバーを決定する必要があります。私の場合、Linux(cPanel)はlocalhostを私のホストとして使用しています。

$smtp = Mail::factory('smtp', array(
    'host' => 'localhost', 
    'auth' => true, 
    'username' => '***@***.com', 
    'password' => '***' 
)); 

しかし、奇妙なことに、まだ送信されたアイテムのレコードはありません。 GoDaddyの担当者がこれを読んでくれることを願っています。

関連する問題