我已经安装了apache-5.4.2,PHP-5.4.11和Mysql-5.5.29。我想用php发送邮件。我意识到我需要在我的电脑上安装一个SMTP服务器才能发送邮件。任何人都可以告诉我有关如何安装SMTP服务器发送邮件的详细信息。因为我是新手,请详细说明。仅供参考我在PHP中使用以下代码。感谢。
<?php
$to = "xyz@gmail.com";
$subject = "Test mail";
$message = "Hello! This is a simple email message.";
$from = "abc@gmail.com";
$headers = "From:" . $from;
mail($to,$subject,$message,$headers);
echo "Mail Sent.";
?>
答案 0 :(得分:3)
假设您可以访问标准电子邮件地址,那么您的PC上不需要SMTP服务器,只需在php.ini中设置您的详细信息即可。
如果您打开php.ini文件,并找到此部分;
[mail function]
SMTP = [Enter You Email SMTP address e.g. smtp.mymail.com]
smtp_port = 25
sendmail_from = [Enter your From Email Address e.g. me@mymail.com]
auth_username = [Enter your Email Address UserName e.g. me1234]
auth_password = [Enter your Email Address Password e.g. password1234]
如果您输入为常规电子邮件地址提供的值(没有方括号!),请重新启动WebServer和PHP,然后您应该启动并运行...
修改强>
好像GMAIL / Google Apps要求SSL发送电子邮件。
因此,这里有一个StackOverflow问题.. How do I Send email using Gmail through mail() ? Where do I put the password?
这里有一个完整的教程...... http://www.web-development-blog.com/archives/send-e-mail-messages-via-smtp-with-phpmailer-and-gmail/
它有一个完整的教程,通过gmail和PHPMailer发送电子邮件。摘录自此;
1)如果您没有,请注册GMail帐户或设置您的域名 适用于Google应用程序。
2)下载最新版本的PHPMailer(我使用的是5.02版本)
3)请与您的网络托管服务提供商联系,确认端口465(TCP输出)是否为 打开,如果没有请他打开那个港口
4)包含PHPMailer类文件:
require_once('phpmailer/class.phpmailer.php');
5)创建这两个常量变量来存储你的GMail登录和 密码。如果您使用Google Apps邮件帐户的登录信息 有一个。
define('GUSER', 'you@gmail.com'); // GMail username
define('GPWD', 'password'); // GMail password
6)使用以下函数发送电子邮件(添加 函数包含在你的一个文件中):
function smtpmailer($to, $from, $from_name, $subject, $body) {
global $error;
$mail = new PHPMailer(); // create a new object
$mail->IsSMTP(); // enable SMTP
$mail->SMTPDebug = 0; // debugging: 1 = errors and messages, 2 = messages only
$mail->SMTPAuth = true; // authentication enabled
$mail->SMTPSecure = 'ssl'; // secure transfer enabled REQUIRED for GMail
$mail->Host = 'smtp.gmail.com';
$mail->Port = 465;
$mail->Username = GUSER;
$mail->Password = GPWD;
$mail->SetFrom($from, $from_name);
$mail->Subject = $subject;
$mail->Body = $body;
$mail->AddAddress($to);
if(!$mail->Send()) {
$error = 'Mail error: '.$mail->ErrorInfo;
return false;
} else {
$error = 'Message sent!';
return true;
}
}
GMail需要该功能内的大多数设置。在搜索PHPmailer教程时,我发现了有关端口和安全性的不同设置的文章。我的建议是使用本教程中的设置。
7)在您的代码中调用该函数:
smtpmailer('to@mail.com', '', 'from@mail.com', 'yourName', 'test mail message', 'Hello World!');
在您的应用程序中使用这种更“高级”的用法:
if (smtpmailer('to@mail.com', 'from@mail.com', 'yourName', 'test mail message', 'Hello World!')) {
// do something
}
if (!empty($error)) echo $error;
答案 1 :(得分:0)
在XP上,几年前,我曾经安装Argosoft Mini MailServer。
我更喜欢gmail或外部的,因为我可以看到SMTP日志。只需在PHP代码中将smtp定义为localhost
。
答案 2 :(得分:0)
您需要配置php.ini文件以通过php发送邮件功能发送电子邮件。
默认的php.ini文件设置
[邮件功能] ;仅适用于Win32。 ; http://php.net/smtp SMTP = localhost ; http://php.net/smtp-port smtp_port = 25
仅适用于Win32。 ; http://php.net/sendmail-from sendmail_from =你@ yourdomain
仅适用于Unix。您也可以提供参数(默认值:“sendmail -t -i”)。 ; http://php.net/sendmail-path ; sendmail_path =
这些条目是从邮件服务器向任何邮件客户端发送邮件所必需的。
2.以下两行不存在:
auth_username AUTH_PASSWORD
您需要添加它们以从需要身份验证的服务器发送邮件。
smtp_server = mail.example.com ///您的SMTP服务器名称。 smtp_port = 26 // SMTP端口号 auth_username = username@example.com auth_password =密码 sendmail_from = you@example.com //来自电子邮件地址。
4.SAVE php.ini文件。
重启服务器。
DONE。