这是关于前几天文章的一个补充 通过邮件内容,获得对方的网站真实 IP 附隐藏方法

同样本功能无需任何要求,发送邮件,可使用自己邮箱,[email protected],可完美结局无法使用 SMTP 、 mail() 函数发送邮件的困境 (不过下文只放邮件提醒,其他自己看着办吧)

邮件 API 地址:http://mail.api.ihuan.me/smtp-to-wp.php  数据使用 POST 方式发送,相关参数后边有

好吧,承认发上篇文章,让张戈骂了一通,不过听说他最近好像也找到解决方法了,不过,我这里可以提供代发,使用 POST 提交数据 无需 SMTP 链接,完美解决主机不支持 mail() 、 SMTP 的问题哦,同样发送 IP 为小幻的万网代发服务器。 (隐藏 IP)

//评论回复邮件通知 (所有回复都邮件通知)
function comment_mail_notify($comment_id) {
  $comment = get_comment($comment_id);
  $parent_id = $comment->comment_parent ? $comment->comment_parent : '';
  $spam_confirmed = $comment->comment_approved;
  if (($parent_id != '') && ($spam_confirmed != 'spam')) {
    //$wp_email = 'no-reply@' . preg_replace('#^www.#', '', strtolower($_SERVER['SERVER_NAME'])); //e-mail 发出点, no-reply 可改为可用的 e-mail.
    $to = trim(get_comment($parent_id)->comment_author_email);
    $subject = '您在 [' . get_option("blogname") . '] 的留言有了回复';
    $message = '
<div style="background-color:#fff; border:1px solid #666666; color:#111;
-moz-border-radius:8px; -webkit-border-radius:8px; -khtml-border-radius:8px;
border-radius:8px; font-size:12px; width:702px; margin:0 auto; margin-top:10px;
font-family: 微软雅黑, Arial;">
<div style="background:#666666; width:100%; height:60px; color:white;
-moz-border-radius:6px 6px 0 0; -webkit-border-radius:6px 6px 0 0;
-khtml-border-radius:6px 6px 0 0; border-radius:6px 6px 0 0; ">
<span style="height:60px; line-height:60px; margin-left:30px; font-size:12px;">
您在<a style="text-decoration:none; color:#00bbff;font-weight:600;"
href="'%20.%20get_option('home')%20.%20'">' . get_option("blogname") . '
</a> 博客上的留言有回复啦!</span></div>
<div style="width:90%; margin:0 auto">
<p>' . trim(get_comment($parent_id)->comment_author) . ', 您好!</p>
<p> 您曾在 [' . get_option("blogname") . '] 的文章
《' . get_the_title($comment->comment_post_ID) . '》 上发表评论:
<p style="background-color: #EEE;border: 1px solid #DDD;
padding: 20px;margin: 15px 0;">' . nl2br(get_comment($parent_id)->comment_content) . '</p>
<p>' . trim($comment->comment_author) . ' 给您的回复如下:
<p style="background-color: #EEE;border: 1px solid #DDD;padding: 20px;
margin: 15px 0;">' . nl2br($comment->comment_content) . '</p>
<p> 您可以点击 <a style="text-decoration:none; color:#00bbff"
href="'%20.%20htmlspecialchars(get_comment_link($parent_id))%20.%20'"> 查看回复的完整內容</a></p>
<p> 欢迎再次光临 <a style="text-decoration:none; color:#00bbff"
href="'%20.%20get_option('home')%20.%20'">' . get_option("blogname") . '</a></p>
<p>(此邮件由系统自动发出, 请勿回复.)</p>
</div>
</div>';
    $message = convert_smilies($message);
    //$from = "From: "" . htmlspecialchars(get_option('blogname'),ENT_QUOTES) . "" <$wp_email>";
    //$headers = "$from
Content-Type: text/html; charset=" . get_option('blog_charset') . "
";
    //wp_mail( $to, $subject, $message, $headers );
    //echo 'mail to ', $to, '<br/> ' , $subject, $message; // for testing
$xm_smtp_data = array ("host" =>"" ,"address" => "","user" => "","pass" => "","fromname" => "");
//如果有自己的 SMTP 则输入,没有则不填
$xm_mail_data = array ("to" => $to,"subject" => $subject,"message" => $message);
$xm_post_data = array_filter(array_merge ($xm_smtp_data, $xm_mail_data));
$xm_url = "http://mail.api.ihuan.me/smtp-to-wp.php";
$xm_ch = curl_init();
curl_setopt($xm_ch, CURLOPT_URL, $xm_url);
curl_setopt($xm_ch, CURLOPT_RETURNTRANSFER, 1);
// post 数据
curl_setopt($xm_ch, CURLOPT_POST, 1);
// post 的变量
curl_setopt($xm_ch, CURLOPT_POSTFIELDS, $xm_post_data);
$xm_output = curl_exec($xm_ch);
curl_close($xm_ch);
if ($xm_output['err_no']==0) return true;
return false;
  }
}
add_action('comment_post', 'comment_mail_notify');

最后那些 我注释掉了使用 wp_mail 直接发送 POST 数据到我的邮件 API

变量 $to 为发送到的目标地址 $subject 为邮件主题 $message 为内容 (不要改数组)

当然变量内容可以不是小幻上面放着的邮件提醒样式

不修改代码则使用小幻的邮件 API  如果修改 $xm_smtp_data 数组中 key 后 「」 则使用小幻 API 连接 SMTP 再发送

这些任务只有发送 POST 数据和你的主机有关。

自定义 SMTP 数组示例 (不用千万不要填写)

$xm_smtp_data = array ("host" =>"smtp.qq.com" ,"address" => "[email protected]","user" => "123","pass" => "123","fromname" => "小幻");

同样 host 这些也都是 POST 的数据,不过不填写,则过滤掉,自然不会连接 SMTP,直接用小幻的。

好了就这些,以后有时间会弄个插件来玩玩,直接用 wp_mail 发送,就不会呢么麻烦了。

2015-7-11 补充:

接受建议,直接使用本站 API 邮箱发送的,也可以自己命名发件人名称了。

在 xm_mail_data 数组中增加 「fromname」=>"发件人名称" 同样可以自定义发件人名称哦!

模版真的可以更换,这里只是小幻用的一个模版,你可以把你以前的扣下来放进去,也可以用的!

2014-08-01T11:29:34+08:00发表于:2014-08-01|WordPress|