1

Im trying to send email from localhost with phalcon but its not working. i tested this way in codeigniter and its working properly but faild in phalcon. whats mt wrong? please! im figure it like this: First paste library from https://github.com/asyamedya/phalcon-phpmailer in to my app dir. then- load libraryDir in loader.php.

[controller]
    public function feedsAction()
{

    //require 'http://localhost/demo/app/library/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';
    }
} 
munaz
  • 166
  • 2
  • 14
  • 2
    You altered your question quite a lot from the original. In the future, you should open a new question, instead of altering it so much. – Timothy Apr 12 '16 at 07:11

2 Answers2

0

According to manual as fo version 4.2.3 of PHP:

The additional_parameters parameter is disabled in safe_mode and the mail() function will expose a warning message and return FALSE when used.

So your code of:

$postMail = mail($to, $subject, $msg, $headers, "-f $from");

is probably ending with false value which drowns you into else case.

PS: if it's not a case, please share your built $headers and $from vars.

yergo
  • 4,761
  • 2
  • 19
  • 41
-1

There is no mail component in Phalcon, you should use an external library for mailing.

There are lots of options to choose from, including swiftmailer and phpmailer.

Timothy
  • 2,004
  • 3
  • 23
  • 29
  • yergo - im testing it on localhost,xampp,php-5.6.19. is xampp have any builtin mail component? in xampp version 1.7 this function working perfectly. and give me a suggestion which component best for phalcon – munaz Apr 12 '16 at 05:11
  • If i use library from https://github.com/asyamedya/phalcon-phpmailer, how could i configure it please give a working example. Thanx – munaz Apr 12 '16 at 05:36
  • 1
    Look at the README.md file of the repo. It gives a simple example of how to use it – Timothy Apr 12 '16 at 05:38
  • Timothy - i want to know about full configure like in my service.php how to load it? use Phalcon\Email; thats it? and $di->set('mail', function() use ($config))... like this way and then what about the function in my controller? nedd detail from you! Please – munaz Apr 12 '16 at 05:55
  • how about this example? https://groups.google.com/forum/#!topic/phalcon-internal/A-9p_4CSlUY – munaz Apr 12 '16 at 06:47
  • You don't need to load the Mail component in the service.php. Copy the code you have there to your controller. – Timothy Apr 12 '16 at 07:03
  • Timothy - sir, i just follow this "http://stackoverflow.com/questions/36538024/phpmailer-says-the-class-doesnt-exists-but-it-does" example. copy 3 files class.phpmailer,class.pop3,class.smtp and also PHPMailerAutoload.php to app/library/PHPMailer/. and copy the example code to my function but its shows error:Fatal error: Class 'PHPMailer' not found in C:\xampp\htdocs\demo\app\controllers\IndexController.php – munaz Apr 12 '16 at 09:10