0

フォームから gmail にメールを送信するために、以下のコードに苦労しています。しかし、私はあきらめます。以下のコードを参照してください。

                            require_once('../php/Mail.php');
                            require_once('../php/Mail/RFC822.php');
                            //function to send email
                            function send_email($to,$from,$subject,$body,$is_body_html=false) {
                                if(! valid_email($to))
                                {
                                    throw new Exception('This email address in invalid: '.htmlspecialchars($to));
                                }
                                if(! valid_email($from))
                                {
                                    throw new Exception('This email address in invalid: '.htmlspecialchars($from));
                                }
                                //set up an array which can hold the SMTP server detail
                                $smtp=array();
                                $smtp['host']='ssl://smtp.gmail.com';
                                $smtp['port']=465;
                                $smtp['auth']=true;
                                $smtp['username']='my_username@gmail.com';
                                $smtp['password']='my_pass';

                                //create the mailer object using which can connect to your SMTP server
                                $mailer=Mail::factory('smtp',$smtp);
                                //check the returned value when creating the mailer object
                                if(PEAR::isError($mailer))
                                    {
                                    throw new Exception('Could not create the mailer object.');
                                    }
                                //as the send method of the mailer object accepts the reciepients and headers as an array, create 
                                //and set up the arrays

                                $recipients=array();
                                $recipients['to']=$to;

                                $headers=array();
                                $headers['from']=$from;
                                $headers['to']=$to;
                                $headers['subject']=$subject;
                                //check if the content is set to be html
                                if($is_body_html)
                                    {
                                    $headers['Content-type']='text/html';
                                    }
                               //send the email
                               $result=$mailer->send($recipients,$headers,$body);
                               //check the returned value when sending the email
                                if(PEAR::isError($result))
                                    {
                                    throw new Exception('There was an error while trying to send the email: '.htmlspecialchars($result));
                                    }
                            } //end of send_email function

私が得たエラーメッセージは以下の通りです

エラー: 「電子メールの送信中にエラーが発生しました: ssl://smtp.gmail.com:465 に接続できませんでした [SMTP: ソケットに接続できませんでした: 接続がタイムアウトしました (コード: - 1、応答: )]' in /home/biwucr/public_html/functions/mailer_function.php:49 スタック トレース: #0 /home/biwucr/public_html/send-quote.php(62): send_email('yibeltalisme@gm. ..', 'イベルタル サワー...', false) #1 {main}

理由がわかりません。

ホスト会社に連絡する必要がありますか?

4

2 に答える 2

1

Gmail の SMTP サーバー アドレスはSMTP.GOOGLEMAIL.COMであり、SMTP.GMAIL.COM ではありません。

したがって、設定は次のようになります。

// ...
$smtp=array();
$smtp['host']='ssl://smtp.googlemail.com';
// ...
于 2012-06-04T09:45:52.933 に答える
1

php.ini ファイルから次の行のコメントを外してみてください。

extension=php_openssl.dll
于 2012-08-29T05:38:23.283 に答える