繁体   English   中英

从php表单发送Gmail

[英]send Gmail from php form

我有一个项目可以为我们的网站设置匿名反馈表单。 我想和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 biz应用程序的公司帐户,这就是为什么我要登录到Google服务器以发送此消息的原因。

如果您在适当的Web主机上运行脚本,则它们将为您设置所有设置以发送外发邮件。 它确实如此处所示简单。

如果您在家中运行服务器,事情会变得有些复杂,因为ISP经常阻止家庭帐户发送邮件,除非通过ISP的中间服务器。

php mail()实际上将使用系统的邮件系统发送电子邮件。 如果您的主机使用的是Linux基本系统,则大多数情况下为sendmail。 如前所述,许多主机已经为您设置了此设置

请参阅mail()要求

您的理解似乎太有限了; 完全可以从连接到Internet的任何位置“发送”邮件。

如果您使用的是Linux服务器,并且邮件服务器设置正确,则给出的示例将可以正常工作。 如果您使用的是体面的虚拟主机,那就可以了。

如果您在开发计算机上,则可以设置本地邮件服务器,并将该邮件服务器配置为通过另一个邮件服务器发送电子邮件。 我认为通常称为... smarthost。 大多数Linux邮件服务器(exim,postfix等)都可以通过这种方式进行配置。 我很确定您也可以通过这种方式在Windows计算机上安装和配置邮件服务器。 我认为Xampp有一个。

如果您实际上想使用PHP直接将电子邮件发送到电子邮件服务器,则可以使用库。 就个人而言,我会使用swiftmailer。

http://swiftmailer.org/ http://phpmailer.worxware.com/

它们将允许您使用所需的任何SMTP服务器,而不仅仅是本地邮件服务器。

您的代码没有输入过滤,很容易受到垃圾邮件的滥用,如果您是第三方邮件收发器(如swiftmailer),则最好

如果为您配置了服务器,通常可以只使用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事务完成。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM