PHP:如何发送电子邮件基础知识

时间:2010-04-30 02:12:11

标签: php email

我想使用PHP从我的localhost向其他人发送电子邮件。我需要做什么?

例如,我是否需要安装mailserver?如果我没弄错的话,那就是一种语言,你不需要邮件发送者来发送电子邮件。是不是?

在PHP.ini中,有[邮件功能]。如何配置?我在网上查了一下,但是真的不明白它是如何工作的。

[mail function] ; For Win32 only.
SMTP = localhost
smtp_port = 25

sendmail_from =admin@localhost.com //Not sure how to write this?

7 个答案:

答案 0 :(得分:2)

如果要使用mail()函数发送邮件,则必须设置本地邮件服务器。您不能使用远程邮件服务器,因为php mail()函数不允许您指定身份验证凭据。但是,我发现设置本地邮件服务器既乏味又烦人,此外它可能很危险。我建议查看PHPMailer。它易于使用和运行。

答案 1 :(得分:1)

您需要在PHP脚本发出请求后实际发送电子邮件的软件(通过使用mail函数:http://php.net/mail)。正如之前的一些回复中所述,无论您运行什么操作系统,都有软件选项。

然而,对于初学者来说,这有时候会非常棘手。通常,您的ISP将允许您访问从中发送电子邮件的SMTP服务器,您可以设置配置来执行此操作。出于开发目的,这应该为你做的伎俩。这些细节可能会在您的ISP网站上(或者可能在您的电子邮件客户端,某处。)您的配置最终会看起来像

[mail function] ; For Win32 only.
SMTP = smtp.my-isp.com
smtp_port = 25
sendmail_from =my.account@my-isp.com

如果做不到这一点,您可以将脚本上传到您的网络主机,该主机应该已经配置为可以正常运行。

希望有所帮助。

答案 2 :(得分:0)

mail("recipient@domain.com", "Subject", "This is an email!");

您只需安装一些电子邮件服务器即可。如果您使用的是Linux,则可以尝试 exim ,如果您使用的是Windows,则可以使用IIS附带的SMTP服务器。

答案 3 :(得分:0)

是的,您确实需要一个可用的邮件服务器。 PHP的mail()函数接受您提供的信息并将其传递给邮件服务器以进行传递。 PHP本身不提供邮件。

您使用的邮件服务器取决于您使用的操作系统。传统上,在unix类型的机器上将安装sendmail或其他一些服务。在Windows上,您可以在php.ini配置文件中指定SMTP服务器的名称。

答案 4 :(得分:0)

简单的方法是使用mail()命令。在Linux上它是sendmail二进制文件的管道,在Windows上,我不知道,可能它使用了一些Microsoft voodoo库。

无论如何,我强烈建议使用phpMailer,因为它是一个成熟的项目,非常稳定,易于设置,具有很多功能,还包括SMTP和IMAP客户端实现,所以绝对是跨平台的。

无论如何,您应该考虑使用本地SMTP服务器作为第一跳来处理网络故障时的邮件队列。

答案 5 :(得分:0)

phpmailer是个不错的选择。 你可以谷歌搜索详细信息。 实际上,电子邮件是使用套接字发送的。

答案 6 :(得分:0)

无需安装特殊模块即可访问PHP中的邮件功能。 但是,要使Mail功能可用,PHP必须在编译期间访问系统上的 sendmail 二进制文件。如果您使用其他邮件程序,例如qmail或postfix,请务必使用随附的相应sendmail包装程序。 PHP将首先在PATH中查找sendmail,然后在以下内容中查找:

/usr/bin:/usr/sbin:/usr/etc:/etc:/usr/ucblib:/usr/lib. 

强烈建议您从PATH获取sendmail。此外,编译PHP的用户必须具有访问sendmail二进制文件的权限。

如果您正在使用托管服务提供商处理Linux环境,则很可能已经存在sendmail,否则您可以从终端进行检查:

cat some_file.txt |mail -s "test mail" user@yourmail.com