2

POP3 でメールを送信するための PHP コードを書き終えました。しかし、エラーに直面するたびに

[エラー] => POP3 サーバーに接続すると、PHP の警告が発生しました: [errno] => 2 [errstr] => fsockopen() [function.fsockopen]: pop3.yahoo.com:465 に接続できません (接続試行失敗しました) SMTP -> エラー: サーバーに接続できませんでした: 接続先が一定時間後に適切に応答しなかったため、接続の試行に失敗しました。

これが私のコードです。

<?php
require_once('/class.phpmailer.php');
require_once('/class.pop3.php'); // required for POP before SMTP

$pop = new POP3();
$pop->Authorise('pop3.yahoo.com',465,10, 'arsalansherwani@yahoo.com',     
'******',1);

$mail = new PHPMailer();
$msg='Name';
//$body             = file_get_contents('contents.html');
//$body             = eregi_replace("[\]",'',$body);
$address='arsalanjawed619.com';
$mail->IsSMTP();
$mail->SMTPDebug = 1;
$mail->Host     = 'pop3.yahoo.com';

$mail->SetFrom('arsalansherwani@yahoo.com', 'arsalan');

$mail->AddReplyTo("arsalansherwani@yahoo.com","arsalan");

$mail->Subject    = "PHPMailer Test Subject via POP before SMTP, basic";

$mail->AltBody    = "To view the message, please use an HTML compatible email viewer!";       

$mail->MsgHTML($msg);

$address = "arsalanjawed619@yahoo.com";
$mail->AddAddress($address, "arsalan");

//$mail->AddAttachment("images/phpmailer.gif");      // attachment
//$mail->AddAttachment("images/phpmailer_mini.gif"); // attachment


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

どんな助けでも大歓迎です

4

4 に答える 4

4

You don't send emails with pop3, this is to retrieve them. You send emails with SMTP for example...

于 2013-05-02T11:00:43.467 に答える
1

間違ったサーバーに接続しています。SMTP サーバーに接続します。以下のコードが機能すると思います。

 $pop->Authorise('smtp.mail.yahoo.com',465,10, 'arsalansherwani@yahoo.com',     
 '******',1);
于 2013-05-02T13:49:48.590 に答える
1

POP3 と SMTP には別のサーバーを使用する必要があります。

POP3はメール受信用

SMTPはメール送信用

使用する必要があります

$mail->Host= 'smtp.mail.yahoo.com';

それ以外の

$mail->Host = pop3.yahoo.com';

$pop->Authorise('pop3.yahoo.com',465,10, 'arsalansherwani@yahoo.com',
'******',1);

$pop->Authorise('pop.mail.yahoo.com',465,10,'arsalansherwani@yahoo.com',
'******',1);

それぞれそれを機能させるために

<?php
require_once('class.phpmailer.php');/*Including classes from php mailer*/
require_once('class.pop3.php'); 
require_once('class.smtp.php');
$pop = new POP3(); /*Create a new object for pop3*/
$pop->Authorise('mailserver001.mydomain.com', 110, 30, 'username', 'password', 1); /*login in to pop3 */
$mail = new PHPMailer();
$mail->IsSMTP();
$mail->Debugoutput = 'html';
$mail->SMTPDebug = 2;
$mail->SMTPOptions = array(
                'ssl' => array(
                'verify_peer' => false,
                'verify_peer_name' => false,
                'allow_self_signed' => true)
               ); /*Skip SSL Errors(if any),generally not needed*/
$mail->Host     = 'mailserver001.mydomain.com'; /*SMTP host*/
$mail->SetFrom('info@mydomain.com', 'Name');/*Email content */
$mail->AddReplyTo("info@mydomain.com","Name");
$mail->Subject    = "Welcome";
$mail->AltBody    = "To view the message, please use an HTML compatible email viewer!"; 
$mail->MsgHTML('HTML');
$address = "myname@otherdomain.com";
$mail->AddAddress($address, "Name");
if(!$mail->Send()) {/*Send Email*/
    echo "Mailer Error: " . $mail->ErrorInfo;
} else {
echo "Message sent!";
}  
?>

無料の Yahoo メール アカウントで POP3 を有効にするには:

歯車に移動し、[設定] をクリックします。

[アカウント] ナビゲーションをクリックし、[編集] ボタンをクリックします。

POP のラジオ ボタンをクリックし、スパムを含めるかどうかを選択してから、[保存] をクリックします。

POP3 をオンにすると、Yahoo メールの設定は次のようになります。

受信メール サーバーの設定:

無料の Yahoo アカウント: pop.mail.yahoo.com (ポート 995、SSL が必要)

Yahoo Plus アカウント: plus.pop.mail.yahoo.com (ポート 995、SSL が必要)

ログインには完全な電子メールアドレスとパスワードを使用してください。

無料の Yahoo メール アカウントは、送信サーバー設定を使用する必要があります: smtp.mail.yahoo.com、ポート 587 (SSL/TLS が必要)

于 2016-11-19T11:24:31.167 に答える