我需要使用PHP发送电子邮件,如何在我的PC(Windows XP)上安装smtp服务器?

时间:2013-01-31 15:22:08

标签: php smtp

我已经安装了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.";
?> 

3 个答案:

答案 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发送邮件功能发送电子邮件。

  1. 打开php.ini文件。
  2. 默认的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

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

    1. 更改SMTP设置
    2. 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文件。

      1. 重启服务器。

      2. DONE。