2

我已经安装了 apache-5.4.2、PHP-5.4.11 和 Mysql-5.5.29 。我想使用 php 发送邮件。我意识到我需要在我的 PC 上安装一个 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.";
?> 
4

3 回答 3

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 问题。如何通过 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;
于 2013-01-31T15:32:25.290 回答
0

几年前,在 XP 上,我曾经安装Argosoft Mini MailServer

我更喜欢它而不是 gmail 或外部的,因为我可以看到 SMTP 日志。localhost只需在您的 PHP 代码中定义您的 smtp 。

于 2013-01-31T15:27:52.450 回答
0

您需要配置 php.ini 文件以通过 php 发送邮件功能发送电子邮件。

  1. 打开 php.ini 文件。

默认 php.ini 文件设置

【邮件功能】;仅适用于 Win32。; http://php.net/smtp SMTP = 本地主机;http://php.net/smtp-port smtp_port = 25

; 仅适用于 Win32。; http://php.net/sendmail-from sendmail_from = you@yourdomain

; 仅适用于 Unix。您也可以提供参数(默认值:“sendmail -t -i”)。; http://php.net/sendmail-path ;sendmail_path =

这些条目是从邮件服务器向任何邮件客户端发送邮件所必需的。

2.以下两行不存在:

auth_username auth_password

您需要添加它们以从需要身份验证的服务器发送邮件。

  1. 更改 SMTP 设置

smtp_server = mail.example.com ///您的 SMTP 服务器名称。smtp_port = 26 // SMTP 端口号 auth_username = username@example.com auth_password = 密码 sendmail_from = you@example.com // 来自电子邮件地址。

4.保存 php.ini 文件。

  1. 重新启动服务器。

  2. 完毕。

于 2013-01-31T15:34:00.157 回答