You are here

public function SMTP::Mail in SMTP Authentication Support 7

Same name and namespace in other branches
  1. 5 smtp.module \SMTP::Mail()
  2. 7.2 smtp.transport.inc \SMTP::Mail()

Starts a mail transaction from the email address specified in $from. Returns TRUE if successful or FALSE otherwise. If True the mail transaction is started and then one or more Recipient commands may be called followed by a Data command.

Implements rfc 821: MAIL <SP> FROM:<reverse-path> <CRLF>

SMTP CODE SUCCESS: 250 SMTP CODE SUCCESS: 552,451,452 SMTP CODE SUCCESS: 500,501,421 @access public

Return value

bool

File

./smtp.transport.inc, line 575
SMTP mail transport class for the smtp module,based on code of the phpmailer library, customized and relicensed to GPLv2

Class

SMTP
SMTP is rfc 821 compliant and implements all the rfc 821 SMTP commands except TURN which will always return a not implemented error. SMTP also provides some utility methods for sending mail to an SMTP server. original author: Chris Ryan

Code

public function Mail($from) {
  $this->error = NULL;

  // so no confusion is caused
  if (!$this
    ->connected()) {
    $this->error = array(
      "error" => "Called Mail() without being connected",
    );
    return FALSE;
  }
  $useVerp = $this->do_verp ? "XVERP" : "";
  fputs($this->smtp_conn, "MAIL FROM:<" . $from . ">" . $useVerp . $this->CRLF);
  $rply = $this
    ->get_lines();
  $code = substr($rply, 0, 3);
  if ($this->do_debug >= 2) {
    drupal_set_message(t("SMTP -> FROM SERVER: @rply", array(
      "@rply" => $rply,
    )));
  }
  if ($code != 250) {
    $this->error = array(
      "error" => "MAIL not accepted from server",
      "smtp_code" => $code,
      "smtp_msg" => substr($rply, 4),
    );
    if ($this->do_debug >= 1) {
      drupal_set_message(t("SMTP -> ERROR: @error: @rply", array(
        "@error" => $this->error["error"],
        "@rply" => $rply,
      )));
    }
    return FALSE;
  }
  return TRUE;
}