さまざまなサーバー (Gmail、yahoo、hotmail など) からメールを取得するコードを作成しました。Gmail サーバーでコードをテストしたところ、動作しましたが、yahoo ではそのコードは動作しません。私のコードは次のとおりです。
$data array will be like
$data['type'] = 'pop3 or imap';
$data['protocol_type'] = 'ssl or tls or none';
$data['port'] = '993 or 995';
$data['login_name'] = 'user name';
$data['password'] = 'user password';
public function testconnectionAction()
{
$data = $_POST;
if($data['type'] == 'pop3' && $data['protocol_type'] == 'none')
{
$hostname = '{'.$data['host'].':'.$data['port'].'/pop3}INBOX';
$username = $data['login_name'];
$password = $data['password'];
$imap = imap_open($hostname,$username,$password)or die(imap_last_error());
if (!imap_ping($imap)) {
echo "Test Failed.";
}else{
echo "Test Successfull.";
}
}elseif($data['type'] == 'imap' && $data['protocol_type'] == 'none') {
$hostname = '{'.$data['host'].':'.$data['port'].'}INBOX';
$username = $data['login_name'];
$password = $data['password'];
$imap = imap_open($hostname,$username,$password);
if (!imap_ping($imap)) {
echo "Test Failed.";
}else{
echo "Test Successfull.";
}
}
if($data['type'] == 'pop3' && $data['protocol_type'] == 'ssl')
{
$hostname = '{'.$data['host'].':'.$data['port'].'/pop3/ss}INBOX';
$username = $data['login_name'];
$password = $data['password'];
$imap = imap_open($hostname,$username,$password);
//
if (!imap_ping($imap)) {
echo "Test Failed.";
}else{
echo "Test Successfull.";
}
}
if($data['type'] == 'imap' && $data['protocol_type'] == 'ssl')
{
$hostname = '{'.$data['host'].':'.$data['port'].'/imap/ssl/novalidate-cert}INBOX';
$username = $data['login_name'];
$password = $data['password'];
/* try to connect */
$inbox = imap_open($hostname,$username,$password);
if (!imap_ping($inbox)) {
echo "Test Failed.";
}else{
echo "Test Successfull.";
}
}
if($data['type'] == 'pop3' && $data['protocol_type'] == 'tls')
{
$hostname = '{'.$data['host'].':'.$data['port'].'/pop3/tls}INBOX';
$username = $data['login_name'];
$password = $data['password'];
$imap = imap_open($hostname,$username,$password)or die(imap_last_error());
if (!imap_ping($imap)) {
echo "Test Failed.";
}else{
echo "Test Successfull.";
}
}
if($data['type'] == 'imap' && $data['protocol_type'] == 'tls')
{
$hostname = '{'.$data['host'].':'.$data['port'].'/imap/tls}INBOX';
$username = $data['login_name'];
$password = $data['password'];
$imap = imap_open($hostname,$username,$password);
if (!imap_ping($imap)) {
echo "Test Failed.";
}else{
echo "Test Successfull.";
}
}
}
コードが yahoo で機能するかどうかをテストするにはどうすればよいですか。ホストとポート 995 に pop.yahoo.com を入力しようとしましたが、機能しませんでした。