php通过 smtp发送邮件问题
程序中:$this->smtp_putcmd("", base64_encode($this->pass)
登陆密码base64后明文发送,认证方式为未加密方式,163的邮箱支持未加密的认证,其他邮箱就未必了,而且像google邮箱也不接受来自本localhost主机发送的邮件,只接受开放smtp服务的主机发送邮件。
以下这段程序是原来写的,探测smtp主机的,在$server数组中添加smtp主机就可以了,只有返回AUTH LOGIN PLAIN的才可以用你说的程序发送邮件:
<?
set_time_limit( 0 );
$server = array(
"smtp.163.com",
"smtp.sina.com",
"smtp.google.com",
);
echo "<pre style='font-size:12px;font-family:verdana'>";
foreach ( $server as $key => $val) {
$fp = fsockopen( $val, 25, $errno, $errstr, 10 );
if ( $errno !==0 ) {
echo("Can not connect to $val .\r\n");
continue;
}
echo "\r\n<font color=red>$val</font> \r\n";
echo fread( $fp, 1024);
fputs( $fp, "EHLO localhost\r\n" );
echo fread( $fp, 1024 );
fclose( $fp );