我有一个项目可以在我们的网站上设置匿名反馈表单。我想用php
进行一下一般的想法是,我会有一个密码字段(给我们的员工)一个反馈字段和一个按钮
我见过这段代码
<?php
$to = "recipient@example.com";
$subject = "Hi!";
$body = "Hi,\n\nHow are you?";
if (mail($to, $subject, $body)) {
echo("<p>Message successfully sent!</p>");
} else {
echo("<p>Message delivery failed...</p>");
}
?>
但我非常肯定我对电子邮件系统的理解有限,我不能发送电子邮件(除非我有一个我没有的开放服务器)所以我需要登录并发送电子邮件服务器(在我的情况下) gmails服务器)
那我该怎么做?
更新
上面的代码确实有效,但它不是来自公司帐户 我们目前使用Google商家应用,这就是我想登录Google服务器发送的原因。
答案 0 :(得分:5)
请查看:http://www.web-development-blog.com/archives/send-e-mail-messages-via-smtp-with-phpmailer-and-gmail/
答案 1 :(得分:1)
如果您在适当的网络主机上运行脚本,他们将为您设置发送外发邮件的所有内容。这真的很简单。
如果您在家中运行服务器,事情会变得复杂一些,因为ISP经常阻止家庭帐户发送邮件,除非通过ISP的中间服务器。
答案 2 :(得分:1)
php mail()实际上会使用系统的邮件系统来发送电子邮件。如果您的主机使用的是Linux基本系统,那么大部分时间都是sendmail。如前所述,许多主持人已经为您设置了这个
答案 3 :(得分:0)
你的理解似乎有点过于有限;完全可以从连接到互联网的任何地方“发送”邮件。
答案 4 :(得分:0)
如果你在Linux服务器上,使用正确设置的邮件服务器,给出的示例将正常工作。如果你在体面的网络托管,它会没事的。
如果您使用的是开发计算机,则可以设置本地邮件服务器,并将邮件服务器配置为通过其他邮件服务器发送电子邮件。我认为它通常被称为... smarthost。大多数Linux邮件服务器(exim,postfix,等等)都可以这种方式配置。我非常确定您也可以通过这种方式在Windows机器上安装和配置邮件服务器。我认为Xampp有一个。
如果您确实想使用PHP将电子邮件直接发送到电子邮件服务器,则可以使用库。就个人而言,我会使用swiftmailer。
http://swiftmailer.org/ http://phpmailer.worxware.com/
他们将允许您使用您喜欢的任何SMTP服务器,而不仅仅是本地邮件服务器。
答案 5 :(得分:0)
您的代码没有针对垃圾邮件滥用的输入过滤,如果您是第三方邮件程序(如swiftmailer),则最佳
答案 6 :(得分:0)
如果为您配置了服务器,通常可以使用mail()。
要从服务器通过GMail发送电子邮件,您需要通过SMTP将电子邮件发送到Gmails邮件服务器(MTA)。
可以将mail()函数配置为使用SMTP或在服务器上使用sendmail二进制文件。您最好请求您的网站托管服务商执行此操作。如果您想自己动手,则需要编辑PHP.ini。
Sendmail是一个拥有发送电子邮件命令行界面的守护程序。 (注意:所有电子邮件都是通过SMTP发送的,sendmail只是为您做了这一点)。
您首先需要使用google邮件服务器身份验证方法以及您的用户名和密码来配置您的sendmail程序。这特定于您使用的sendmail程序。 然后,您需要配置PHP以通过PHP.ini使用您的sendmail程序。如果您需要特定说明,可以发布。
在这种情况下,我认为您不能将PHP配置为直接使用SMTP,因为Google需要TLS和身份验证参数(用户/密码),而这些参数不能放入PHP.ini中。
注意:PHP文档提到sendmail用于Linux,SMTP仅用于Windows。这是不正确的。您可以在Windows上配置PHP以使用sendmail,并使用Linux来使用SMTP。你可以只需要一个windows版本的sendmail,默认情况下linux附带sendmail,因此你真的不需要SMTP。 Sendmail通常是更好的选择,因为它会将邮件添加到其队列中,而PHP是单线程的,必须等待SMTP事务完成。