Contributions > Plugins, tips, and tricks

Mail 1.6.3: Setting up mail through SMTP (using swiftmailer)

<< < (3/5) > >>

tpalmieri:
I followed these instruction exactly and all I get when the visitor sends the email is a white screen on the send email form, and no email is sent.

I am using 1.64.

I noticed during when I was following the instructions that webim_mail is no colger in common.php.

I found it in /libs/notify.php and /mail.php.  I've tried commenting out webim_mail in both pages, and each age individually with no success.

I'd really appreciate any help.  We can't use Webim without the email working and I'm under serious pressure to find an alternative!

Thanks!

mcrosby:
Great support tool, but can we please get SMTP mailing built in to the script?  The vast majority of hosts now block php mail.

Either that, or could you please post some up to date instructions?  The script seems to have changed so much that these instructions no longer make any sense.

For now I'll be editing the script to go to a different page when everyone is logged out.

This is a very popular thread on this forum by views (7000+ views) so maybe this should be dealt with quickly?

As a temporary fix, I've replaced the leavemessage.tpl file with the following code:


--- Quote ---<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd ">
<html xmlns="http://www.w3.org/1999/xhtml ">
<head>
<title>Leave a Message</title>
<meta http-equiv="refresh" content="0; url=../message.php">
</head>

<body>

</body>
</html>

--- End quote ---

Then in the directory before /webim/, just put a file called "message.php", and set it up to send a message to you there.

bambosz:
Mibew Messenger 1.6.4 with phpmailer via SMTP (I have v5.1)

1 Download phpmailer (http://sourceforge.net/projects/phpmailer/files/phpmailer%20for%20php5_6/PHPMailer%20v5.1) and extract

class.phpmailer.php and class.smtp.php to a location in the libs/mailer directory.

2. Open libs/notify.php and add a line to load the phpmailer

require_once('/mailer/class.phpmailer.php');

3. then adjust the webim_mail function to have look like this...

function webim_mail($toaddr, $reply_to, $subject, $body, $link)
{
   global $webim_encoding, $webim_mailbox, $mail_encoding,
$current_locale;

   $headers = "From: $webim_mailbox\r\n"
            . "Reply-To: " . myiconv($webim_encoding,
$mail_encoding, $reply_to) . "\r\n"
            . "Content-Type: text/plain;
charset=$mail_encoding\r\n"
            . 'X-Mailer: PHP/' . phpversion();

   $real_subject = "=?" . $mail_encoding . "?B?" .
base64_encode(myiconv($webim_encoding, $mail_encoding, $subject)) . "?=";

   $body = preg_replace("/\n/", "\r\n", $body);  //I couldn't get the line breaks to work
   
   $is_smtp = true;

   if ($is_smtp) {
   
      $mail             = new PHPMailer();

      $mail->IsSMTP();
      $mail->SMTPAuth   = false;                  // enable SMTP
authentication
      //$mail->SMTPSecure = "ssl";                 // sets the
prefix to the server
      $mail->Host       = "example.comp.com:25";      // sets up
fqdn of your SMTP server : port
      //$mail->Port       = 25;                   // set the SMTP
port

      //$mail->Username   = "webmaster@mydomain.com";  // username
if auth = true
      //$mail->Password   = "secretpass";            // password
if auth = true

      $mail->From       = $webim_mailbox;
      $mail->FromName   = "Chat Server"; // you can adjust these to suit
      $mail->Subject    = $subject;
      $mail->AltBody    = $body; //Text Body
      $mail->WordWrap   = 50; // set word wrap

      $mail->MsgHTML($body);

      $mail->AddReplyTo("webmaster@comp.com","
webmaster@comp.com");

      $mail->AddAddress($toaddr, $toaddr);

      $mail->IsHTML(false); // send as HTML

      $mail->Send();

   } else {

   @mail($toaddr, $real_subject, wordwrap(myiconv($webim_encoding,
$mail_encoding, $body), 70), $headers);

   }
}

ablovatto2012:
I need help!!

I'm trying to configure my mibew system (v 1.6.4) to send e-mails to operators or leave off-line messages but it doesn't work. I tryed different forms but no success.

I changed 'notify.php' code as informed at support forum:

------------------------------

Mibew Messenger 1.6.4 with phpmailer via SMTP (I have v5.1)

1 Download phpmailer (http://sourceforge.net/projects/phpmailer/files/phpmailer%20for%20php5_6/PHPMailer%20v5.1 ) and extract

class.phpmailer.php and class.smtp.php to a location in the libs directory.

2. Open libs/notify.php and add a line to load the phpmailer

require_once('class.phpmailer.php');

3. then adjust the webim_mail function to have look like this...

function webim_mail($toaddr, $reply_to, $subject, $body, $link)
{
   global $webim_encoding, $webim_mailbox, $mail_encoding,
$current_locale;

   $headers = "From: $webim_mailbox\r\n"
            . "Reply-To: " . myiconv($webim_encoding,
$mail_encoding, $reply_to) . "\r\n"
            . "Content-Type: text/plain;
charset=$mail_encoding\r\n"
            . 'X-Mailer: PHP/' . phpversion();

   $real_subject = "=?" . $mail_encoding . "?B?" .
base64_encode(myiconv($webim_encoding, $mail_encoding, $subject)) . "?=";

   $body = preg_replace("/\n/", "\r\n", $body);  //I couldn't get the line breaks to work
   
   $is_smtp = true;

   if ($is_smtp) {
   
      $mail             = new PHPMailer();

      $mail->IsSMTP();
      $mail->SMTPAuth   = false;                  // enable SMTP
authentication
      //$mail->SMTPSecure = "ssl";                 // sets the
prefix to the server
      $mail->Host       = "example.comp.com:25";      // sets up
fqdn of your SMTP server : port
      //$mail->Port       = 25;                   // set the SMTP
port

      //$mail->Username   = "webmaster@mydomain.com";  // username
if auth = true
      //$mail->Password   = "secretpass";            // password
if auth = true

      $mail->From       = $webim_mailbox;
      $mail->FromName   = "Chat Server"; // you can adjust these to suit
      $mail->Subject    = $subject;
      $mail->AltBody    = $body; //Text Body
      $mail->WordWrap   = 50; // set word wrap

      $mail->MsgHTML($body);

      $mail->AddReplyTo("webmaster@comp.com","
webmaster@comp.com");

      $mail->AddAddress($toaddr, $toaddr);

      $mail->IsHTML(false); // send as HTML

      $mail->Send();

   } else {

   @mail($toaddr, $real_subject, wordwrap(myiconv($webim_encoding,
$mail_encoding, $body), 70), $headers);

   }
}

---------------------------------------------

Then i set to work and i 'clean' the code lines like this:

--------------------------------------------

<?php

require_once('class.phpmailer.php');

function webim_mail($toaddr, $reply_to, $subject, $body, $link)
{
   global $webim_encoding, $webim_mailbox, $mail_encoding, $current_locale;

   $headers = "From: $webim_mailbox\r\n"
            . "Reply-To: " . myiconv($webim_encoding, $mail_encoding, $reply_to) . "\r\n"
            . "Content-Type: text/plain;
charset=$mail_encoding\r\n"
            . 'X-Mailer: PHP/' . phpversion();

   $real_subject = "=?" . $mail_encoding . "?B?" . base64_encode(myiconv($webim_encoding, $mail_encoding, $subject)) . "?=";

   $body = preg_replace("/\n/", "\r\n", $body);  //I couldn't get the line breaks to work
 
      $mail             = new PHPMailer();

      $mail->IsSMTP();
      $mail->SMTPAuth   = true;                  // enable SMTP authentication
      $mail->Host           = "smtp.myhost.com:25";      // sets up fqdn of your SMTP server : port
      $mail->Username   = "myuser@myuser.com";  // username
      $mail->Password   = "******";            // password

      $mail->From       = $webim_mailbox;
      $mail->FromName   = "Chat Server"; // you can adjust these to suit
      $mail->Subject    = $subject;
      $mail->AltBody    = $body; //Text Body
      $mail->WordWrap   = 50; // set word wrap

      $mail->MsgHTML($body);

      $mail->AddReplyTo("myuser@myuser.com","myuser@myuser.com");

      $mail->AddAddress($toaddr, $toaddr);

      $mail->IsHTML(false); // send as HTML

      $mail->Send();

 
}

?>

----------------------------------------

I'm very disappointed, because the problem was not fixed.  So can you help me?

Thank you very much!

Best regards,

Anderson

DrumsonSALE:
I am posting this for anyone that needs it for future reference.

I have cleaned up the code for the notify.php file

replace all the code in the file to what is below, enter your SMTP settings and it should work for you now


--- Code: ---<?php

require_once('mailer/class.phpmailer.php');

function webim_mail($toaddr, $reply_to, $subject, $body, $link)
{
   global $webim_encoding, $webim_mailbox, $mail_encoding, $current_locale;

   $headers = "From: $webim_mailbox\r\n" . "Reply-To: " . myiconv($webim_encoding,$mail_encoding, $reply_to) . "\r\n" . "Content-Type: text/plain; charset=$mail_encoding\r\n" . 'X-Mailer: PHP/' . phpversion();

   $real_subject = "=?" . $mail_encoding . "?B?" . base64_encode(myiconv($webim_encoding, $mail_encoding, $subject)) . "?=";

   $body = preg_replace("/\n/", "\r\n", $body);  // I couldn't get the line breaks to work
   
   $is_smtp = true;

   if ($is_smtp) {
      $mail             = new PHPMailer();
      $mail->IsSMTP();
      $mail->SMTPAuth   = true; // set to true if you need to enable SMTP authentication
      $mail->SMTPSecure = "tls"; // sets the prefix to the server - "ssl" or "tls" 
      $mail->Host       = 'smtp.yourserver.com'; // change to your SMTP host
      $mail->Port       = '525'; // set the SMTP port
      $mail->Username   = 'my@email.com'; // username if SMTPAuth = true
      $mail->Password   = 'password'; // password if SMTPAuth = true
      $mail->From       = $reply_to; // set who the email is from
      $mail->FromName   = $reply_to; // sets the email from name - I set it to the same as above
      $mail->Subject    = $subject; // Email subgect line - can edit in "leavemail.subject" under admin > localize
      $mail->AltBody    = $body; // Text Body - can edit layout in "leavemail.body" under admin > localize
      $mail->WordWrap   = 50; // set word wrap
      $mail->MsgHTML($body);
      $mail->AddReplyTo($reply_to);
      $mail->AddAddress($toaddr);
      $mail->IsHTML(false); // send email as HTML
      $mail->Send();

   } else {

   @mail($toaddr, $real_subject, wordwrap(myiconv($webim_encoding, $mail_encoding, $body), 70), $headers);

   }
}

?>

--- End code ---

Navigation

[0] Message Index

[#] Next page

[*] Previous page

Go to full version