通过PHP函数发送邮件

时间:2018-08-24 08:18:49

标签: php email sendmail spam

我正在尝试使用sendmail(在 / usr / sbin / sendmail 中)通过PHP邮件()函数从服务器PLESK中仅发送电子邮件

我已经阅读了约翰·康德(John Conde)在此处PHP mail function doesn't complete sending of e-mail中解释的清单,我的问题很可能与提供商有关,因为我的脚本将电子邮件发送到gmail帐户,但是没有其他人;发送到gmail帐户的电子邮件将进入SPAM文件夹。例如,我正尝试发送到 name@company.it

在您问我是否已经检查了发件人的IP信誉之前,请验证反向DNS结果并在http://mail-tester.com/ [垃圾邮件检查程序]中获得10分中的9分。

在域的php.ini中,我输入以下字段:SMTP,smtp_port,sendmail_from,sendmail_path,auth_password和auth_username。 (因为我在域上具有SSL证书,所以我在提供商smtp服务器上使用465端口)。

这是代码段:

<?php
    error_reporting(-1);
    ini_set('display_errors', 'On');
    ini_set('display_startup_errors', 1);
    set_error_handler("var_dump");

    //
    $replyTo = "website@globalpower.it";
    $mailTo  = "fcaliari@e-globalservice.it";

    //Test sender delle Email
    $headers = 'From: '.$replyTo."\r\n".
               'Reply-To: '.$replyTo."\r\n" .'X-Mailer: PHP/' . phpversion();

    if (mail($mailTo,"Title","Body of the message",$headers)){
       echo "Mail ok";
    } else {
       echo "Error Mail";
    }
?>

这是服务器在邮件目录下的日志

Aug 23 10:38:20 webserver check-quota[1905]: Starting the check-quota filter...
Aug 23 10:38:20 webserver journal: plesk sendmail[1904]: handlers_stderr: SKIP
Aug 23 10:38:20 webserver journal: plesk sendmail[1904]: SKIP during call 'check-quota' handler
Aug 23 10:38:20 webserver postfix/pickup[1560]: DAC521A8B: uid=10003 from=<rootgp@globalpower.it>
Aug 23 10:38:20 webserver postfix/cleanup[1910]: DAC521A8B: message-id=<20180823143820.DAC521A8B@webserver.e-globalservice.it>
Aug 23 10:38:20 webserver postfix/qmgr[1561]: DAC521A8B: from=<rootgp@globalpower.it>, size=450, nrcpt=1 (queue active)
Aug 23 10:38:20 webserver postfix-local[1915]: postfix-local: from=rootgp@globalpower.it, to=fcaliari@e-globalservice.it, dirname=/var/qmail/mailnames
Aug 23 10:38:20 webserver postfix-local[1915]: cannot chdir to mailname dir fcaliari: No such file or directory
Aug 23 10:38:20 webserver postfix-local[1915]: Unknown user: fcaliari@e-globalservice.it
Aug 23 10:38:20 webserver postfix/pipe[1914]: DAC521A8B: to=<fcaliari@e-globalservice.it>, relay=plesk_virtual, delay=0.05, delays=0.03/0.01/0/0.01, dsn=2.0.0, status=sent (delivered via plesk_virtual service)
Aug 23 10:38:20 webserver postfix/qmgr[1561]: DAC521A8B: removed
  

在日志中显示此电子邮件 rootgp@gloablpower.it ,我从未在php.ini文件或脚本中使用过该电子邮件

任何帮助表示感谢!

1 个答案:

答案 0 :(得分:0)

php脚本中发送邮件时,我强烈建议使用SMTP中继通过专用电子邮件服务器发送电子邮件,而不是直接通过Web服务器发送。原因是:如果您托管在共享服务器上,则也有可能同时托管在该服务器上的其他人发送垃圾邮件(这将导致您的电子邮件被标记为垃圾邮件)。

我在使用PHPMailer方面拥有丰富的经验,您可以调整许多设置以使设置适合您的环境/设置。

有关参考,请参见:https://github.com/PHPMailer/PHPMailer