0

localhost からメールを送信しようとしましたが、うまくいきません。以下のコードが表示されます。以下のコードを見て、実際の問題を教えてください。ありがとう

使ったメール機能 ->

[mail function]
; For Win32 only.
; http://php.net/smtp
SMTP = SMTP
; http://php.net/smtp-port
smtp_port = 25

; For Win32 only.
; http://php.net/sendmail-from
;sendmail_from = NULL

; For Unix only.  You may supply arguments as well (default: "sendmail -t -i").
; http://php.net/sendmail-path
;sendmail_path = NULL

; Force the addition of the specified parameters to be passed as extra parameters
; to the sendmail binary. These parameters will always replace the value of
; the 5th parameter to mail(), even in safe mode.
;mail.force_extra_parameters = NULL

; Add X-PHP-Originating-Script: that will include uid of the script followed by the filename
mail.add_x_header = Off

; Log all mail() calls including the full path of the script, line #, to address and headers
mail.log = "D:\xampp\apache\logs\php_mail.log"

使用するphpコード ->

    <?php
$to = "somebody@example.com, somebodyelse@example.com";
$subject = "HTML email";

$message = "
<html>
<head>
<title>HTML email</title>
</head>
<body>
<p>This email contains HTML Tags!</p>
<table>
<tr>
<th>Firstname</th>
<th>Lastname</th>
</tr>
<tr>
<td>John</td>
<td>Doe</td>
</tr>
</table>
</body>
</html>
";

// Always set content-type when sending HTML email
$headers = "MIME-Version: 1.0" . "\r\n";
$headers .= "Content-type:text/html;charset=iso-8859-1" . "\r\n";

// More headers
$headers .= 'From: <webmaster@example.com>' . "\r\n";
$headers .= 'Cc: myboss@example.com' . "\r\n";

mail($to,$subject,$message,$headers);
?>

上記のPHPコードを実行するとエラーが発生する->

Warning: mail() [function.mail]: Failed to connect to mailserver at "SMTP" port 25, verify your "SMTP" and "smtp_port" setting in php.ini or use ini_set() in D:\xampp\htdocs\mail.php on line 43

前もって感謝します。

4

2 に答える 2

3

SMTPポート25で実行されているメールサーバーはありません。IISに付属のSMTPサーバーを使用するか、http://www.xmailserver.org/http://www.hmailserver.comなどを使用できます。

サーバーマネージャー>機能(役割ではない)>右クリックして[追加]> [SMTPサーバー]-次に、ローカルサーバーを指すようにIIS7SMTPを構成します。

于 2012-11-09T13:00:30.207 に答える
0

wamp の localhost でメール サーバーを実行できるようにする簡単な python スクリプトを次に示します。php.ini を変更する必要はありません。

import smtpd

import smtplib

import asyncore

class SMTPServer(smtpd.SMTPServer):

    def __init__(*args, **kwargs):
        print "Running smtp server on port 25"
        smtpd.SMTPServer.__init__(*args, **kwargs)

    def process_message(*args, **kwargs):
        to = args[3][0]
        msg = args[4]
        gmail_user = 'yourgmailhere'
        gmail_pwd = 'yourgmailpassword'
        smtpserver = smtplib.SMTP("smtp.gmail.com",587)
        smtpserver.ehlo()
        smtpserver.starttls()
        smtpserver.ehlo
        smtpserver.login(gmail_user, gmail_pwd)
        smtpserver.sendmail(gmail_user, to, msg)
        print 'sent to '+to
        pass
if __name__ == "__main__":
    smtp_server = SMTPServer(('localhost', 25), None)
    try:
        asyncore.loop()
    except KeyboardInterrupt:
        smtp_server.close()

#end of code

注:php mail()によって送信された引数は、受信メールとしてargs [3] [0]の配列に対応していたため、アドレスとメッセージとしてargs [3] [0]とargs [4]を使用しました

于 2013-02-27T22:33:17.697 に答える