发不出邮件,也不返回错误提示。各位高手看看代码错在哪?<?php
header( "content-type:text/html;charset=utf-8" );
$smtp = array( "url" => "smtp.gmail.com",
"port" => "465",
"username" => "", //用户名
"password" => "", //密码
"from" => "", //发件人e-mail
"to" => "", //收件人e-mail
"subject" => "测试一下标题",
"body" => "测试一下内容"
);$CRLF = "\r\n";
$test = "";$header = array( 'Return-path' => '<' . $smtp['from'] . '>',
'Date' => date( 'r' ),
'From' => '<' . $smtp['from'] . '>',
'MIME-Version' => '1.0',
'Subject' => inlineCode( $smtp['subject'] ),
'To' => $smtp['to'],
'Content-Type' => 'text/html; charset=UTF-8; format=flowed',
'Content-Transfer-Encoding' => 'base64'
);$data = buildHeader( $header ) . $CRLF . chunk_split( base64_encode( $smtp['body'] ) );
$content = "EHLO " . $smtp["url"] . $CRLF; // 先得hello一下
$content .= "AUTH LOGIN" . $CRLF . base64_encode( $smtp["username"] ) . $CRLF . base64_encode( $smtp["password"] ) . $CRLF; // 验证登陆
$content .= "MAIL FROM:" . $smtp["from"] . $CRLF; // 发件地址
$content .= "RCPT TO:" . $smtp["to"] . $CRLF; // 收件地址
$content .= "DATA" . $CRLF . $data . $CRLF . "." . $CRLF; // 发送内容
$content .= "QUIT" . $CRLF; // 退出$curl = curl_init();
curl_setopt( $curl, CURLOPT_URL, $smtp['url'] );
curl_setopt( $curl, CURLOPT_PORT, $smtp['port'] );
curl_setopt( $curl, CURLOPT_USERAGENT, 'Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.0; .NET CLR 3.0.4506.2152)' );
curl_setopt( $curl, CURLOPT_TIMEOUT, 10 );
curl_setopt( $curl, CURLOPT_RETURNTRANSFER, true ); // curl接收返回数据
curl_setopt( $curl, CURLOPT_SSL_VERIFYPEER, false );
curl_setopt( $curl, CURLOPT_SSL_VERIFYHOST, false );
curl_setopt( $curl, CURLOPT_CUSTOMREQUEST, $content );$test = curl_exec( $curl );var_dump( $test );curl_close( $curl );function inlineCode( $str ) {
$str = trim( $str );
return $str ? '=?UTF-8?B?' . base64_encode( $str ) . '?= ' : '';
}
function buildHeader( $headers ) {
$ret = '';
foreach( $headers as $k => $v ) {
$ret .= $k . ': ' . $v . "\n";
}
return $ret;
} ?>
header( "content-type:text/html;charset=utf-8" );
$smtp = array( "url" => "smtp.gmail.com",
"port" => "465",
"username" => "", //用户名
"password" => "", //密码
"from" => "", //发件人e-mail
"to" => "", //收件人e-mail
"subject" => "测试一下标题",
"body" => "测试一下内容"
);$CRLF = "\r\n";
$test = "";$header = array( 'Return-path' => '<' . $smtp['from'] . '>',
'Date' => date( 'r' ),
'From' => '<' . $smtp['from'] . '>',
'MIME-Version' => '1.0',
'Subject' => inlineCode( $smtp['subject'] ),
'To' => $smtp['to'],
'Content-Type' => 'text/html; charset=UTF-8; format=flowed',
'Content-Transfer-Encoding' => 'base64'
);$data = buildHeader( $header ) . $CRLF . chunk_split( base64_encode( $smtp['body'] ) );
$content = "EHLO " . $smtp["url"] . $CRLF; // 先得hello一下
$content .= "AUTH LOGIN" . $CRLF . base64_encode( $smtp["username"] ) . $CRLF . base64_encode( $smtp["password"] ) . $CRLF; // 验证登陆
$content .= "MAIL FROM:" . $smtp["from"] . $CRLF; // 发件地址
$content .= "RCPT TO:" . $smtp["to"] . $CRLF; // 收件地址
$content .= "DATA" . $CRLF . $data . $CRLF . "." . $CRLF; // 发送内容
$content .= "QUIT" . $CRLF; // 退出$curl = curl_init();
curl_setopt( $curl, CURLOPT_URL, $smtp['url'] );
curl_setopt( $curl, CURLOPT_PORT, $smtp['port'] );
curl_setopt( $curl, CURLOPT_USERAGENT, 'Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.0; .NET CLR 3.0.4506.2152)' );
curl_setopt( $curl, CURLOPT_TIMEOUT, 10 );
curl_setopt( $curl, CURLOPT_RETURNTRANSFER, true ); // curl接收返回数据
curl_setopt( $curl, CURLOPT_SSL_VERIFYPEER, false );
curl_setopt( $curl, CURLOPT_SSL_VERIFYHOST, false );
curl_setopt( $curl, CURLOPT_CUSTOMREQUEST, $content );$test = curl_exec( $curl );var_dump( $test );curl_close( $curl );function inlineCode( $str ) {
$str = trim( $str );
return $str ? '=?UTF-8?B?' . base64_encode( $str ) . '?= ' : '';
}
function buildHeader( $headers ) {
$ret = '';
foreach( $headers as $k => $v ) {
$ret .= $k . ': ' . $v . "\n";
}
return $ret;
} ?>
你看一下這篇文章
http://stackoverflow.com/questions/3434432/using-curl-to-send-mail-from-gmail你这段代码应该是来自博客园吧
http://www.cnblogs.com/bluefrog/archive/2012/06/02/2531980.html他的代码我测试了,无法发送成功!
curl_setopt( $curl, CURLOPT_SSL_VERIFYHOST, false );