在ubuntu中通过php脚本发送邮件

时间:2014-07-27 05:30:40

标签: php linux email

我正在尝试通过ubuntu中的php脚本向我的gmail id发送邮件,但无法发送。 我的代码

<html>
<head><title>Send mail</title></head>
<body >


<?php
$name=$email=$query="";
if($_SERVER["REQUEST_METHOD"]=="POST"){
 $name = test_input($_POST["name"]);
   $email = test_input($_POST["email"]);
   $query = test_input($_POST["query"]);
 if(mail("abc@gmail.com","Subject",$query,"From: $email\n")){
 echo "email send";
}else{
echo "not send";
}
}
function test_input($data) {
   $data = trim($data);
   $data = stripslashes($data);
   $data = htmlspecialchars($data);
   return $data;
}
?>

<form method="post" action="<?php echo ($_SERVER["PHP_SELF"]);?>">
Name:<input type="text" name="name" required>


  Email id:<input type="email" name="email" required>
    Query:<textarea name="query" row="5" cols="40" required></textarea>

   <input type="submit" value="Submit">

    </form>

    </body>
</html>

我配置了php.ini

[mail function]
; For Win32 only.
; http://php.net/smtp
SMTP=localhost
; http://php.net/smtp-port
smtp_port=25

; For Win32 only.
; http://php.net/sendmail-from
;sendmail_from = 

; For Unix only.  You may supply arguments as well (default: "sendmail -t -i").
; http://php.net/sendmail-path
sendmail_path ="/usr/sbin/sendmail -t -i"

extension=php_openssl.dll //removed semicolon

输出/var/log/mail.log

Jul 27 11:09:59 ak-VirtualBox postfix/smtp[5598]: 7069320869: to=<abc@gmail.com>, relay=gmail-smtp-in.l.google.com[74.125.129.26]:25, delay=4.9, delays=0.08/0.08/2.9/1.8, dsn=5.7.1, status=bounced (host gmail-smtp-in.l.google.com[74.125.129.26] said: 550-5.7.1 [14.98.28.24      12] Our system has detected that this message is 550-5.7.1 likely unsolicited mail. To reduce the amount of spam sent to Gmail, 550-5.7.1 this message has been blocked. Please visit 550-5.7.1 http://support.google.com/mail/bin/answer.py?hl=en&answer=188131 for 550 5.7.1 more information. kr8si13914201pbc.32 - gsmtp (in reply to end of DATA command))
Jul 27 11:09:59 ak-VirtualBox postfix/cleanup[5596]: 4AA162086D: message-id=<20140727053959.4AA162086D@ak-VirtualBox>
Jul 27 11:09:59 ak-VirtualBox postfix/qmgr[4781]: 4AA162086D: from=<>, size=2908, nrcpt=1 (queue active)
Jul 27 11:09:59 ak-VirtualBox postfix/bounce[5606]: 7069320869: sender non-delivery notification: 4AA162086D
Jul 27 11:09:59 ak-VirtualBox postfix/qmgr[4781]: 7069320869: removed
Jul 27 11:09:59 ak-VirtualBox postfix/local[5608]: 4AA162086D: to=<daemon@ak-VirtualBox>, relay=local, delay=0.12, delays=0.06/0.01/0/0.05, dsn=2.0.0, status=sent (delivered to mailbox)
Jul 27 11:09:59 ak-VirtualBox postfix/qmgr[4781]: 4AA162086D: removed

当我提交表格时,它显示电子邮件发送(根据我的脚本),但我会收到我的Gmail邮件中的任何电子邮件。是否有任何配置和安装我错过了?

任何帮助将不胜感激

2 个答案:

答案 0 :(得分:1)

在第一行中,日志具体说明:

Our system has detected that this message is 550-5.7.1 likely unsolicited mail. To reduce the amount of spam sent to Gmail, 550-5.7.1 this message has been blocked. Please visit 550-5.7.1 http://support.google.com/mail/bin/answer.py?hl=en&answer=188131 for 550 5.7.1 more information. kr8si13914201pbc.32 - gsmtp (in reply to end of DATA command))

Gmail(以及大多数其他邮件服务)结合使用发送域名信誉,邮件传输/发送服务器状态(列入黑名单等),请求频率数,收件人数和邮件内容来确定邮件是否为垃圾邮件。

如果确定不是,则将其传递到收件箱,如果是中等严重性,则将其路由到垃圾邮件文件夹。如果评级非常低,它会阻止邮件 - 就像您的情况一样。

答案 1 :(得分:1)

服务器上的DNS是否正确转发和反转?如果没有,这将解释为什么来自您服务器的邮件被视为垃圾邮件。

要查看您的邮件服务器是否存在引起其他邮件服务器认为是垃圾邮件发送者的明显问题,请尝试从邮件服务器发送邮件至check-auth@verifier.port25.com。这项服务会进行一系列检查,你会收到大量信息的报告,例如你的邮件服务器的DNS是否设置正确,你的邮件服务器的IP是否在任何黑名单上,如果你有问题与您的SPF记录等。