在php中使用mail()发送邮件

时间:2013-10-11 06:30:03

标签: php email

您好我正在学习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&amp; hotmail并且它不会向ymail发送邮件。

为什么会发生?

我使用的是Ubuntu 12.04&amp; php版本5.3.10。

任何人都可以帮助我吗?多亏了提前的捣蛋鬼..

3 个答案:

答案 0 :(得分: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)。

答案 1 :(得分:0)

Verry简单

&#13;
&#13;
$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);
&#13;
&#13;
&#13;

希望帮助你!

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

答案 2 :(得分:0)

不要在蹩脚的email()函数中使用build,而是使用PHPMailer。 它易于使用,并为您完成大部分艰苦工作。

特点:

  • 可能是世界上最受欢迎的PHP发送电子邮件代码!
  • 许多开源项目使用:WordPress,Drupal,1CRM,SugarCRM,
  • Yii,Joomla!以及更多集成SMTP支持 - 在没有本地邮件服务器的情况下发送发送包含多个TO,CC,BCC和
  • 的电子邮件
  • REPLY-TOs不读取HTML电子邮件的邮件客户端的多部分/备用电子邮件支持UTF-8内容和8位,base64,二进制, 和quoted-printable编码SMTP
  • 使用LOGIN,PLAIN,NTLM,CRAM-MD5和Google进行身份验证 SSL和TLS上的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的示例文件夹中找到更多内容。