假设您可以访问标准电子邮件地址,那么您的 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 问题。如何通过 mail() 使用 Gmail 发送电子邮件?我把密码放在哪里?
完整的教程在这里... 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;