doubailian4459
2014-06-12 20:03
浏览 31
已采纳

如何在PHPMailer中指定SMTP服务器?

I want to know how do I get a SMTP server to use PHPMailer to send automatic emails with my created email (email@mydomain.com).

My webhost doesn't provide one. I brought my domain in OnlyDomains and my webhost is 000Webhost.

<?php
require './PHPMailer-master/PHPMailerAutoload.php';

$mail = new PHPMailer;

$mail->isSMTP();                                      // Set mailer to use SMTP
$mail->Host = '';  // Specify main and backup SMTP servers
$mail->SMTPAuth = true;                               // Enable SMTP authentication
$mail->Username = 'noreply@mydomain.com';                 // SMTP username
$mail->Password = '********';                           // SMTP password
$mail->SMTPSecure = 'tls';                            
$mail->From = 'noreply@mydomain.com';
$mail->FromName = 'Admin';
$mail->addAddress('sdfsdf@hotmail.com');               // Name is optional

$mail->WordWrap = 50;                                 // Set word wrap to 50 characters
$mail->isHTML(true);                                  // Set email format to HTML

$mail->Subject = 'swag';
$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';
}
?>
  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

1条回答 默认 最新

  • dongnao2048 2014-06-12 20:09
    已采纳

    You should see if your web host allows you to use sendmail on their system. STMP is not needed with sendmail. Chances are they do since it is a standard part of most any Linux/Unix setup. And since you say that your web host is 000WebHost it seems like they do support the use of sendmail:

    You can use PHP's mail() function to send mail for your visitors…

    But they also seem to offer SMTP in their premium package.

    Past that, I would recommend not worrying about SMTP & sticking to sendmail for now. Looking at the documentation for PHPMailer it seems that the library can use sendmail:

    The PHP mail() function usually sends via a local mail server, typically fronted by a sendmail binary on Linux, BSD and OS X platforms, however, Windows usually doesn't include a local mail server; PHPMailer's integrated SMTP implementation allows email sending on Windows platforms without a local mail server.

    Then looking in the examples/ folder in the PHPMailer repository shows there is a sendmail example:

    require '../PHPMailerAutoload.php';
    
    //Create a new PHPMailer instance
    $mail = new PHPMailer();
    
    // Set PHPMailer to use the sendmail transport
    $mail->isSendmail();
    
    //Set who the message is to be sent from
    $mail->setFrom('from@example.com', 'First Last');
    
    //Set an alternative reply-to address
    $mail->addReplyTo('replyto@example.com', 'First Last');
    
    //Set who the message is to be sent to
    $mail->addAddress('whoto@example.com', 'John Doe');
    
    //Set the subject line
    $mail->Subject = 'PHPMailer sendmail test';
    
    //Read an HTML message body from an external file, convert referenced images to embedded,
    //convert HTML into a basic plain-text alternative body
    $mail->msgHTML(file_get_contents('contents.html'), dirname(__FILE__));
    
    //Replace the plain text body with one created manually
    $mail->AltBody = 'This is a plain-text message body';
    
    //Attach an image file
    $mail->addAttachment('images/phpmailer_mini.png');
    
    //send the message, check for errors
    if (!$mail->send()) {
        echo "Mailer Error: " . $mail->ErrorInfo;
    } else {
        echo "Message sent!";
    }
    
    点赞 打赏 评论

相关推荐 更多相似问题