1

您好,我正在学习 php,在那里我知道了 mail() 函数,我已经尝试过这段代码

function sendMail()
{
    $to = 'Sohil Desai<sohildesaixxxx@gmail.com>';
    $from = 'Sohil Desai<sohildesaixxxx@hotmail.com>';
    $subject = 'Test Mail';

    $headers  = 'MIME-Version: 1.0'. "\r\n";
    $headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
    $headers .= 'From: '.$from . "\r\n";
    $headers .= 'X-Mailer: PHP/'.phpversion();

    $message = 'This mail is sent for testing.';

    $mail = mail($to, $subject, $message, $headers);

    if (!$mail) {
        return 'Error occured sending mail.';
    }

    return 'Mail successfully sent.';
}

echo sendmail();

我只测试了 gmail、ymail 和 hotmail。

此功能在垃圾邮件中为 gmail 和 hotmail 发送邮件,它不会向 ymail 发送邮件。

为什么会这样??

我正在使用 Ubuntu 12.04 和 php 版本 5.3.10。

谁能帮我??提前感谢halpers..

4

3 回答 3

1

尝试添加“to”作为标题:

$headers  = 'MIME-Version: 1.0'. "\r\n";
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
$headers .= 'To: ' . $to . "\r\n";
$headers .= 'From: '.$from . "\r\n";
$headers .= 'X-Mailer: PHP/'.phpversion();

更多详细信息可在http://www.php.net/manual/en/function.mail.php(示例 #4)中找到。

于 2013-10-11T06:41:40.403 回答
0

很简单

$to = 'someone@example.com';
$subject = 'the subject';
$message = 'the message';
$headers = 'From: webmaster@example.com' . "\r\n" .
    'Reply-To: webmaster@example.com' . "\r\n" .
    'X-Mailer: PHP/' . phpversion();
 
mail($to, $subject, $message, $headers);

希望能帮到你!

来源:http ://w3webtools.com/send-email-using-php/

于 2014-11-05T23:44:49.770 回答
0

不要使用内置的糟糕的 email() 函数,而是使用 PHPMailer。它易于使用,可以为您完成大部分艰苦的工作。

特征:

  • 可能是世界上最流行的从 PHP 发送电子邮件的代码!
  • 被许多开源项目使用:WordPress、Drupal、1CRM、SugarCRM、
  • 易,J​​oomla!以及更多 集成 SMTP 支持 - 无需本地邮件服务器即可发送具有多个 TO、CC、BCC 和
  • REPLY-TOs 不阅读 HTML 电子邮件的邮件客户端的多部分/替代电子邮件 支持 UTF-8 内容和 8 位、base64、二进制和带引号的可打印编码 SMTP
  • 通过 SSL 和 TLS 使用 LOGIN、PLAIN、NTLM、CRAM-MD5 和 Google 的 XOAUTH2 机制进行身份验证以 47 种语言传输错误消息!
  • DKIM 和 S/MIME 签名支持 与 PHP 5.0 及更高版本兼容 更多!

您所要做的就是下载这个类并将其包含到您的项目中,然后像示例一样使用它:

一个简单的例子

<?php
require 'PHPMailerAutoload.php';

$mail = new PHPMailer;

//$mail->SMTPDebug = 3;                               // Enable verbose debug output

$mail->isSMTP();                                      // Set mailer to use SMTP
$mail->Host = 'smtp1.example.com;smtp2.example.com';  // Specify main and backup SMTP servers
$mail->SMTPAuth = true;                               // Enable SMTP authentication
$mail->Username = 'user@example.com';                 // SMTP username
$mail->Password = 'secret';                           // SMTP password
$mail->SMTPSecure = 'tls';                            // Enable TLS encryption, `ssl` also accepted
$mail->Port = 587;                                    // TCP port to connect to

$mail->setFrom('from@example.com', 'Mailer');
$mail->addAddress('joe@example.net', 'Joe User');     // Add a recipient
$mail->addAddress('ellen@example.com');               // Name is optional
$mail->addReplyTo('info@example.com', 'Information');
$mail->addCC('cc@example.com');
$mail->addBCC('bcc@example.com');

$mail->addAttachment('/var/tmp/file.tar.gz');         // Add attachments
$mail->addAttachment('/tmp/image.jpg', 'new.jpg');    // Optional name
$mail->isHTML(true);                                  // Set email format to HTML

$mail->Subject = 'Here is the subject';
$mail->Body    = 'This is the HTML message body <b>in bold!</b>';
$mail->AltBody = 'This is the body in plain text for non-HTML mail clients';

if(!$mail->send()) {
    echo 'Message could not be sent.';
    echo 'Mailer Error: ' . $mail->ErrorInfo;
} else {
    echo 'Message has been sent';
}

您会在https://github.com/PHPMailer/PHPMailer的示例文件夹中找到更多内容。

于 2015-09-29T04:18:54.737 回答