1

この非常に小さなコードを使用して、電子メールが電子メールの宛先に到達するかどうかをテストしています。

<?php
  mail('woodsy013@hotmail.com','Test mail','The mail function is working!');
  echo 'Mail sent!';
?>

しかし、それは機能していないようです。WAMPを使用しています。無料の SMTP サーバーをインストールしました。そして、私の php.ini ファイルは次のように構成されています。

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

; For Win32 only.
; http://php.net/sendmail-from
sendmail_from = you@yourdomain

私が言及したアクションに従って、woodsy130@hotmail.com に電子メールを受信して​​いないようです。

次のエラーが表示されます。

Warning: mail() [function.mail]: SMTP server response: 530 5.7.0 
Must issue a STARTTLS command first. ff2sm10904265wib.9 in 
C:\wamp\www\Derrysgc2\pages\pages\mailtest.php on line 2

助言がありますか?

4

2 に答える 2

5

Gmail で SMTP サーバーを使用してみてください。

ini_set("SMTP","ssl://smtp.gmail.com");
ini_set("smtp_port","465");

または、多くの PHP メーラー ライブラリがあります。これにより、物事が簡素化され、使いやすくなります。私のお気に入りは迅速なメーラーです。最も良い点は、コアの php 構成ファイルをいじる必要がなく、ドキュメントも非常に読みやすいことです。

たとえば、PHP の迅速なメーラー ライブラリを使用してメールを送信する場合は、次のように簡単です。

require_once 'lib/swift_required.php';

// Create the Transport
$transport = Swift_SmtpTransport::newInstance('smtp.example.org', 25)
  ->setUsername('your username')
  ->setPassword('your password');

// Create the Mailer using your created Transport
$mailer = Swift_Mailer::newInstance($transport);

// Create a message
$message = Swift_Message::newInstance('Wonderful Subject')
  ->setFrom(array('john@doe.com' => 'John Doe'))
  ->setTo(array('receiver@domain.org', 'other@domain.org' => 'A name'))
  ->setBody('Here is the message itself');

// Send the message
$result = $mailer->send($message);

詳細については、公式 Web サイトhttp://swiftmailer.org/docsのドキュメントを参照してください。

于 2012-04-06T14:18:21.560 に答える
1

SMTPはSMTPサーバーを指すべきではありませんか?(私はsmtp.tools.sky.comがあなたのプロバイダーであると仮定しています)。また、sendmail_fromは正しいメールアドレスである必要があります。

また、一部のメールプロバイダーは、動的IPアドレスから送信された電子メールをブロックすることに注意してください。

于 2012-04-06T14:04:51.880 に答える