Working SMTP with Authentication

Everything related to Hesk - helpdesk software

Moderator: mkoch227

jrewolinski
Posts: 8
Joined: Tue Aug 04, 2009 6:01 pm

Working SMTP with Authentication

Post by jrewolinski »

Thought I'd post this for anyone else needing it.

I found this here...
viewtopic.php?t=2469&highlight=smtp

But the instructions weren't very clear...so here's a better decription of what needs to be changed.

Create a new PHP file (sendmail.php) with the below contents, and save it in your main hesk directory, and also in your admin directory.

Code: Select all

<?php 

class smtp 
{ 
/* Public Variables */ 
var $smtp_port; 
var $time_out; 
var $host_name; 
var $log_file; 
var $relay_host; 
var $debug; 
var $auth; 
var $user; 
var $pass; 

/* Private Variables */ 
var $sock; 

/* Constractor */ 
function smtp($relay_host = "", $smtp_port = 25,$auth = false,$user,$pass) 
{ 
$this->debug = FALSE; 
$this->smtp_port = $smtp_port; 
$this->relay_host = $relay_host; 
$this->time_out = 30; //is used in fsockopen() 
# 
$this->auth = $auth;//auth 
$this->user = $user; 
$this->pass = $pass; 
# 
$this->host_name = "localhost"; //is used in HELO command 
$this->log_file = ""; 

$this->sock = FALSE; 
} 

/* Main Function */ 
function sendmail($to, $from, $subject = "", $body = "", $mailtype, $cc = "", $bcc = "", $additional_headers = "") 
{ 
$mail_from = $this->get_address($this->strip_comment($from)); 
$body = ereg_replace("(^|(\r\n))(\\.)", "\\1.\\3", $body); 
$header = "MIME-Version:1.0\r\n"; 
if($mailtype=="HTML"){ 
$header.= "Content-Type:text/html\r\n"; 
} 
$header.= "To: ".$to."\r\n"; 
if ($cc != "") { 
$header.= "Cc: ".$cc."\r\n"; 
} 
$header.= "From: $from<".$from.">\r\n"; 
$header.= "Subject: ".$subject."\r\n"; 
$header.= $additional_headers; 
$header.= "Date: ".date("r")."\r\n"; 
$header.= "X-Mailer:By Redhat (PHP/".phpversion().")\r\n"; 
list($msec, $sec) = explode(" ", microtime()); 
$header.= "Message-ID: <".date("YmdHis", $sec).".".($msec*1000000).".".$mail_from.">\r\n"; 
$TO = explode(",", $this->strip_comment($to)); 

if ($cc != "") { 
$TO = array_merge($TO, explode(",", $this->strip_comment($cc))); 
} 

if ($bcc != "") { 
$TO = array_merge($TO, explode(",", $this->strip_comment($bcc))); 
} 

$sent = TRUE; 
foreach ($TO as $rcpt_to) { 
$rcpt_to = $this->get_address($rcpt_to); 
if (!$this->smtp_sockopen($rcpt_to)) { 
$this->log_write("Error: Cannot send email to ".$rcpt_to."\n"); 
$sent = FALSE; 
continue; 
} 
if ($this->smtp_send($this->host_name, $mail_from, $rcpt_to, $header, $body)) { 
$this->log_write("E-mail has been sent to <".$rcpt_to.">\n"); 
} else { 
$this->log_write("Error: Cannot send email to <".$rcpt_to.">\n"); 
$sent = FALSE; 
} 
fclose($this->sock); 
$this->log_write("Disconnected from remote host\n"); 
} 
return $sent; 
} 

/* Private Functions */ 

function smtp_send($helo, $from, $to, $header, $body = "") 
{ 
if (!$this->smtp_putcmd("HELO", $helo)) { 
return $this->smtp_error("sending HELO command"); 
} 
#auth 
if($this->auth){ 
if (!$this->smtp_putcmd("AUTH LOGIN", base64_encode($this->user))) { 
return $this->smtp_error("sending HELO command"); 
} 

if (!$this->smtp_putcmd("", base64_encode($this->pass))) { 
return $this->smtp_error("sending HELO command"); 
} 
} 
# 
if (!$this->smtp_putcmd("MAIL", "FROM:<".$from.">")) { 
return $this->smtp_error("sending MAIL FROM command"); 
} 

if (!$this->smtp_putcmd("RCPT", "TO:<".$to.">")) { 
return $this->smtp_error("sending RCPT TO command"); 
} 

if (!$this->smtp_putcmd("DATA")) { 
return $this->smtp_error("sending DATA command"); 
} 

if (!$this->smtp_message($header, $body)) { 
return $this->smtp_error("sending message"); 
} 

if (!$this->smtp_eom()) { 
return $this->smtp_error("sending <CR><LF>.<CR><LF> [EOM]"); 
} 

if (!$this->smtp_putcmd("QUIT")) { 
return $this->smtp_error("sending QUIT command"); 
} 

return TRUE; 
} 

function smtp_sockopen($address) 
{ 
if ($this->relay_host == "") { 
return $this->smtp_sockopen_mx($address); 
} else { 
return $this->smtp_sockopen_relay(); 
} 
} 

function smtp_sockopen_relay() 
{ 
$this->log_write("Trying to ".$this->relay_host.":".$this->smtp_port."\n"); 
$this->sock = @fsockopen($this->relay_host, $this->smtp_port, $errno, $errstr, $this->time_out); 
if (!($this->sock && $this->smtp_ok())) { 
$this->log_write("Error: Cannot connenct to relay host ".$this->relay_host."\n"); 
$this->log_write("Error: ".$errstr." (".$errno.")\n"); 
return FALSE; 
} 
$this->log_write("Connected to relay host ".$this->relay_host."\n"); 
return TRUE;; 
} 

function smtp_sockopen_mx($address) 
{ 
$domain = ereg_replace("^.+@([^@]+)$", "\\1", $address); 
if (!@getmxrr($domain, $MXHOSTS)) { 
$this->log_write("Error: Cannot resolve MX \"".$domain."\"\n"); 
return FALSE; 
} 
foreach ($MXHOSTS as $host) { 
$this->log_write("Trying to ".$host.":".$this->smtp_port."\n"); 
$this->sock = @fsockopen($host, $this->smtp_port, $errno, $errstr, $this->time_out); 
if (!($this->sock && $this->smtp_ok())) { 
$this->log_write("Warning: Cannot connect to mx host ".$host."\n"); 
$this->log_write("Error: ".$errstr." (".$errno.")\n"); 
continue; 
} 
$this->log_write("Connected to mx host ".$host."\n"); 
return TRUE; 
} 
$this->log_write("Error: Cannot connect to any mx hosts (".implode(", ", $MXHOSTS).")\n"); 
return FALSE; 
} 

function smtp_message($header, $body) 
{ 
fputs($this->sock, $header."\r\n".$body); 
$this->smtp_debug("> ".str_replace("\r\n", "\n"."> ", $header."\n> ".$body."\n> ")); 

return TRUE; } 

function smtp_eom() 
{ 
fputs($this->sock, "\r\n.\r\n"); 
$this->smtp_debug(". [EOM]\n"); 

return $this->smtp_ok(); 
} 

function smtp_ok() 
{ 
$response = str_replace("\r\n", "", fgets($this->sock, 512)); 
$this->smtp_debug($response."\n"); 

if (!ereg("^[23]", $response)) { 
fputs($this->sock, "QUIT\r\n"); 
fgets($this->sock, 512); 
$this->log_write("Error: Remote host returned \"".$response."\"\n"); 
return FALSE; 
} 
return TRUE; 
} 

function smtp_putcmd($cmd, $arg = "") 
{ 
if ($arg != "") { 
if($cmd=="") $cmd = $arg; 
else $cmd = $cmd." ".$arg; 
} 

fputs($this->sock, $cmd."\r\n"); 
$this->smtp_debug("> ".$cmd."\n"); 

return $this->smtp_ok(); 
} 

function smtp_error($string) 
{ 
$this->log_write("Error: Error occurred while ".$string.".\n"); 
return FALSE; 
} 

function log_write($message) 
{ 
$this->smtp_debug($message); 

if ($this->log_file == "") { 
return TRUE; 
} 

$message = date("M d H:i:s ").get_current_user()."[".getmypid()."]: ".$message; 
if (!@file_exists($this->log_file) || !($fp = @fopen($this->log_file, "a"))) { 
$this->smtp_debug("Warning: Cannot open log file \"".$this->log_file."\"\n"); 
return FALSE;; 
} 
flock($fp, LOCK_EX); 
fputs($fp, $message); 
fclose($fp); 

return TRUE; 
} 

function strip_comment($address) 
{ 
$comment = "\\([^()]*\\)"; 
while (ereg($comment, $address)) { 
$address = ereg_replace($comment, "", $address); 
} 

return $address; 
} 

function get_address($address) 
{ 
$address = ereg_replace("([ \t\r\n])+", "", $address); 
$address = ereg_replace("^.*<(.+)>.*$", "\\1", $address); 

return $address; 
} 

function smtp_debug($message) 
{ 
if ($this->debug) { 
echo $message; 
} 
} 
} 
?>
Next you need to modify the 3 files that send mail.
submit_ticket.php, reply_ticket.php, and admin_reply_ticket.php

In submit_ticket.php, comment out this line..

Code: Select all

/*@mail($email,$hesklang['ticket_received'],$msg,$headers);*/
and paste the following below it.

Code: Select all

require("sendmail.php"); 
########################################## 
$smtpserver = "0.0.0.0"; //SMTP server IP address
$smtpserverport =25; //SMTP port (I had to use alternate port)
$smtpusermail = "address@domain.com"; //SMTP email address
$smtpemailto = $email; //
$smtpuser = "user"; //SMTP username for authentication
$smtppass = "passoword"; //SMTP password for authentication
$mailsubject = $hesklang['ticket_received']; //subject
$mailbody = $msg; //body
$mailtype = "TXT"; //
########################################## 
$smtp = new smtp($smtpserver,$smtpserverport,true,$smtpuser,$smtppass); 
//true 
$smtp->debug = false; //
if($smtp->sendmail($smtpemailto, $smtpusermail, $mailsubject, $mailbody, $mailtype)) 
{ 
//echo "send successfully!!!<br>"; 
} 
else 
{ 
//echo "send unsuccessfully!!!!<br>"; 
} 
And also comment out this line.

Code: Select all

/*@mail($email,$hesklang['new_ticket_submitted'],$msg,$headers);*/
And paste the following below it.

Code: Select all

########################################## 
$smtpserver = "0.0.0.0"; //SMTP server IP address
$smtpserverport =25; //SMTP port 
$smtpusermail = "address@domain.com"; //SMTP email
$smtpemailto = $email; //
$smtpuser = "username"; //SMTP username
$smtppass = "password"; //SMTP password
$mailsubject = $hesklang['new_ticket_submitted']; //subject
$mailbody = $msg; //body
$mailtype = "TXT"; //
########################################## 
$smtp = new smtp($smtpserver,$smtpserverport,true,$smtpuser,$smtppass); 
//true 
$smtp->debug = false; //
if($smtp->sendmail($smtpemailto, $smtpusermail, $mailsubject, $mailbody, $mailtype)) 
{ 
//echo "send successfully!!!<br>"; 
} 
else 
{ 
//echo "send unsuccessfully!!!!<br>"; 
} 
Next in reply_ticket.php, comment out this line..

Code: Select all

/*@mail($email,$hesklang['new_reply_ticket'],$msg,$headers);*/
And paste this below...

Code: Select all

require("sendmail.php"); 
########################################## 
$smtpserver = "0.0.0.0"; //SMTP server IP address
$smtpserverport =25; //SMTP port 
$smtpusermail = "address@domain.com"; //SMTP email
$smtpemailto = $email; //
$smtpuser = "username"; //SMTP username
$smtppass = "password"; //SMTP password
$mailsubject = $hesklang['new_reply_ticket']; //subject
$mailbody = $msg; //body
$mailtype = "TXT"; //
########################################## 
$smtp = new smtp($smtpserver,$smtpserverport,true,$smtpuser,$smtppass); 
//true 
$smtp->debug = false; //
if($smtp->sendmail($smtpemailto, $smtpusermail, $mailsubject, $mailbody, $mailtype)) 
{ 
//echo "send successfully!!!<br>"; 
} 
else 
{ 
//echo "send unsuccessfully!!!!<br>"; 
} 
And lastly, in admin_reply_ticekt.php, comment out the following line.

Code: Select all

/*@mail($orig_email,$hesklang['new_reply_staff'],$msg,$headers);*/
And past the following below it.

Code: Select all

require("sendmail.php"); 
########################################## 
$smtpserver = "0.0.0.0"; //SMTP server IP address
$smtpserverport =25; //SMTP port 
$smtpusermail = "address@domain.com"; //SMTP email
$smtpemailto = $orig_email; //
$smtpuser = "username"; //SMTP username
$smtppass = "password"; //SMTP password
$mailsubject = $hesklang['new_reply_staff']; //subject
$mailbody = $msg; //body
$mailtype = "TXT"; //
########################################## 
$smtp = new smtp($smtpserver,$smtpserverport,true,$smtpuser,$smtppass); 
//true 
$smtp->debug = false; //
if($smtp->sendmail($smtpemailto, $smtpusermail, $mailsubject, $mailbody, $mailtype)) 
{ 
//echo "send successfully!!!<br>"; 
} 
else 
{ 
//echo "send unsuccessfully!!!!<br>"; 
} 
The smtp portions of code, have a debug option as well, that will print out every step of the SMTP process, so you can make sure it works. Just don't forget to turn off the debug.

Don't forget to fill out the correct server IP address, email address, username, and password in all 4 sections.

Hope this helps, it did for me.
Thanks andrew80706 for the SMTP class code.
And thank you Klemen for the great help desk.
Last edited by jrewolinski on Tue Feb 02, 2010 8:15 pm, edited 1 time in total.
Klemen
Site Admin
Posts: 10136
Joined: Fri Feb 11, 2005 4:04 pm

Post by Klemen »

Thanks for sharing, I'm sure a lot of users will need this and it might take a while for the official version to support it.

I moved it into the add-ons/mods forum.
Klemen, creator of HESK and PHPJunkyardWas this helpful? You can buy me a drink here Image

Image You should follow me on Twitter here

Help desk software | Cloud help desk | Guestbook | Link manager | Click counter | more PHP Scripts ...

Also browse for php hosting companies, read php books, find php resources and use webmaster tools
lupolo
Posts: 214
Joined: Mon Apr 20, 2009 2:12 pm

Post by lupolo »

Wenn using this SMTP addon, i have a problem wenn using a smtp server without username and password, how must i work wenn there is ni username and password? Wenn i not filling it in it also not works.

-->
Trying to smtpout.my_mailserver.nl:25 220 smtp2.my_mailserver.nl ESMTP Postfix Connected to relay host smtpout.my_mailserver.nl > HELO localhost 250 smtp2.my_mailserver.nl > AUTH LOGIN 334 VXNlcm5hbWU6 > 334 UGFzc3dvcmQ6 > MAIL FROM: 535 5.7.0 Error: authentication failed: bad protocol / cancel Error: Remote host returned "535 5.7.0 Error: authentication failed: bad protocol / cancel" Error: Error occurred while sending MAIL FROM command. Error: Cannot send email to Disconnected from remote host send unsuccessfully!!!!
Trying to smtpout.my_mailserver.nl:25 220 smtp1.my_mailserver.nl ESMTP Postfix Connected to relay host smtpout.my_mailserver.nl > HELO localhost 250 smtp1.my_mailserver.nl > AUTH LOGIN 334 VXNlcm5hbWU6 > 334 UGFzc3dvcmQ6 > MAIL FROM: 535 5.7.0 Error: authentication failed: bad protocol / cancel Error: Remote host returned "535 5.7.0 Error: authentication failed: bad protocol / cancel" Error: Error occurred while sending MAIL FROM command. Error: Cannot send email to Disconnected from remote host Trying to smtpout.my_mailserver.nl:25 220 smtp2.my_mailserver.nl ESMTP Postfix Connected to relay host smtpout.my_mailserver.nl > HELO localhost 250 smtp2.my_mailserver.nl > AUTH LOGIN 334 VXNlcm5hbWU6 > 334 UGFzc3dvcmQ6 > MAIL FROM: 535 5.7.0 Error: authentication failed: bad protocol / cancel Error: Remote host returned "535 5.7.0 Error: authentication failed: bad protocol / cancel" Error: Error occurred while sending MAIL FROM command. Error: Cannot send email to Disconnected from remote host Trying to smtpout.my_mailserver.nl:25 220 smtp1.my_mailserver.nl ESMTP Postfix Connected to relay host smtpout.my_mailserver.nl > HELO localhost 250 smtp1.my_mailserver.nl > AUTH LOGIN 334 VXNlcm5hbWU6 > 334 UGFzc3dvcmQ6 > MAIL FROM: 535 5.7.0 Error: authentication failed: bad protocol / cancel Error: Remote host returned "535 5.7.0 Error: authentication failed: bad protocol / cancel" Error: Error occurred while sending MAIL FROM command. Error: Cannot send email to Disconnected from remote host send unsuccessfully!!!!

--->
$smtpserver = "smtpout.my_mailserver.nl"; //SMTP server IP address
$smtpserverport =25; //SMTP port (I had to use alternate port)
$smtpusermail = "abc@adef.nl"; //SMTP email address
$smtpemailto = $email; //
$smtpuser = ""; //SMTP username for authentication
$smtppass = ""; //SMTP password for authentication
lupolo
Posts: 214
Joined: Mon Apr 20, 2009 2:12 pm

Post by lupolo »

Nobody?
fk59
Posts: 22
Joined: Thu Jan 21, 2010 7:30 am

Post by fk59 »

sry, but doesnt work. After running admin_reply_ticket.php a white, blank page comes up and no mail will be send.

Settings for smtpserver are correct.

Hints?

Greetz
Frank
lupolo
Posts: 214
Joined: Mon Apr 20, 2009 2:12 pm

Post by lupolo »

For me i worked, only get a failure becase i don't use a username and password (IP check) So I think you have done something wrong!

Still waiting for a fix with no username/password auterisation.
jrewolinski
Posts: 8
Joined: Tue Aug 04, 2009 6:01 pm

Post by jrewolinski »

Sorry, i don't check these forums very often, and I guess I don't get email notifications.
I'm not very knowledgeable about PHP, I only have minor programming expierience.

fk59, I would enable the debugging, and see what errors you get. What you're getting sounds similar to something I remember getting, but I enabled debugging, and figured it out.

lupolo, My guess, would be, if you want SMTP, withOUT Authentication, just comment out these lines, in the sendmail.php file. That's the authentication portion of code.

Code: Select all

#auth 
if($this->auth){ 
if (!$this->smtp_putcmd("AUTH LOGIN", base64_encode($this->user))) { 
return $this->smtp_error("sending HELO command"); 
} 

if (!$this->smtp_putcmd("", base64_encode($this->pass))) { 
return $this->smtp_error("sending HELO command"); 
} 
} 
Hope that helps...
lupolo
Posts: 214
Joined: Mon Apr 20, 2009 2:12 pm

Post by lupolo »

Worked! Many thanks!
lupolo
Posts: 214
Joined: Mon Apr 20, 2009 2:12 pm

Post by lupolo »

Is it also possible, to use a no-reply@ email for the email to the cusomer and use a bounce email wenn the entered mail doesent work?

It won't use the standard's:

$headers = "From: $hesk_settings[noreply_mail]\n";
$headers.= "Reply-to: $hesk_settings[noreply_mail]\n";
$headers.= "Return-Path: $hesk_settings[webmaster_mail]\n";

How does the SMTP work with the above?
jrewolinski
Posts: 8
Joined: Tue Aug 04, 2009 6:01 pm

Post by jrewolinski »

If I understand correctly... you could probably do this... Not sure if it'll work though, as I said, I'm not great with coding. There's already a built in "additional_headers" variable in the existing code, but I'm not sure about its format, so I added 2 additional header fields to the sendmail.php file.

Code: Select all

require("sendmail.php"); 
########################################## 
$smtpserver = "0.0.0.0"; //SMTP server IP address 
$smtpserverport =25; //SMTP port 
$smtpusermail = $hesk_settings[noreply_mail]; //SMTP email 
$smtpemailto = $orig_email; // 
$smtpuser = "username"; //SMTP username 
$smtppass = "password"; //SMTP password 
$mailsubject = $hesklang['new_reply_staff']; //subject 
$mailbody = $msg; //body 
$mailtype = "TXT"; // 
$mailreply = $hesk_settings[noreply_mail];     //ADD THIS LINE
$mailreturn = $hesk_settings[webmaster_mail];     //ADD THIS LINE
########################################## 
$smtp = new smtp($smtpserver,$smtpserverport,true,$smtpuser,$smtppass); 
//true 
$smtp->debug = false; // 
if($smtp->sendmail($smtpemailto, $smtpusermail, $mailsubject, $mailbody, $mailtype, "", "", "", $mailreply, $mailreturn)) 
{ 
//echo "send successfully!!!<br>"; 
} 
else 
{ 
//echo "send unsuccessfully!!!!<br>"; 
} 
and change the following lines in your sendmail.php file.

Code: Select all

function sendmail($to, $from, $subject = "", $body = "", $mailtype, $cc = "", $bcc = "", $additional_headers = "", $hesk1 = "", $hesk2 = "")     //ADD THE LAST 2 VARIABLES

Code: Select all

$header.= "From: $from<".$from.">\r\n"; 
$header.= "Subject: ".$subject."\r\n"; 
$header.= "Reply-to: "$hesk1"\r\n";          //ADD THIS LINE
$header.= "Return-Path: "$hesk2"\r\n";       //ADD THIS LINE
$header.= $additional_headers; 
$header.= "Date: ".date("r")."\r\n"; 
$header.= "X-Mailer:By Redhat (PHP/".phpversion().")\r\n";
lupolo
Posts: 214
Joined: Mon Apr 20, 2009 2:12 pm

Post by lupolo »

Thank you for the reply but the hack wont work, get a white screen while submitting.

But what is $hesk1/2 ?
lupolo
Posts: 214
Joined: Mon Apr 20, 2009 2:12 pm

Post by lupolo »

lupolo wrote:Thank you for the reply but the hack wont work, get a white screen while submitting.

But what is $hesk1/2 ?
Nobody, who know's how to modify the script?
uziel171
Posts: 3
Joined: Wed Apr 28, 2010 12:59 pm

Strange Error

Post by uziel171 »

Hi Guys,

Just found this, which is great and I've installed it, However I'm getting an odd debug error. Hoping someone can shed some light on it for me if they've got 5 minutes.

It would appear that my SMTP server thinks something dodgy is going on and is dumping the connection.

The username it logs in with is support@pantherex.co.uk, so it should have no problem sending to John@.

Trying to 193.238.167.215:25 220 EXSMTP01.ocp.solution1.co.uk Microsoft ESMTP MAIL Service ready at Wed, 28 Apr 2010 13:07:52 +0100 Connected to relay host 193.238.167.215 > HELO pantherex.co.uk 250 EXSMTP01.ocp.solution1.co.uk Hello [87.194.139.47] > AUTH LOGIN *USERNAMEBASE64* 334 UGFzc3dvcmQ6 > *PASSWORDBASE64* 235 2.7.0 Authentication successful > MAIL FROM: 250 2.1.0 Sender OK > RCPT TO: 250 2.1.5 Recipient OK > DATA 354 Start mail input; end with . > MIME-Version:1.0 > To: john@pantherex.co.uk > From: support@pantherex.co.uk > Subject: Your support ticket received > Date: Wed, 28 Apr 2010 12:07:54 +0000 > X-Mailer:By Redhat (PHP/5.3.0) > Message-ID: <20100428120754.955993.support@pantherex.co.uk> > > Dear twine, > > Your support ticket "sdfghj" has been submitted. We try to reply to all tickets as soon as possible, usually within 24 hours. > > Your tracking ID: 5HS9NR8J22 > > You can view the status of your ticket here: > http://helpdesk.pantherex.co.uk//ticket ... 5HS9NR8J22 > > You will receive an e-mail notification when our staff replies to your ticket. > > *DO NOT REPLY TO THIS E-MAIL* > This is an automated e-mail message sent from our support system. Do not reply to this e-mail as we won't receive your reply! > > Yours sincerely, > > Pantherex IT > http://www.pantherex.co.uk/ > > . [EOM] 550 5.7.1 Client does not have permissions to send as this sender Error: Remote host returned "550 5.7.1 Client does not have permissions to send as this sender" Error: Error occurred while sending . [EOM]. Error: Cannot send email to Disconnected from remote host Trying to 193.238.167.215:25 220 EXSMTP01.ocp.solution1.co.uk Microsoft ESMTP MAIL Service ready at Wed, 28 Apr 2010 13:07:52 +0100 Connected to relay host 193.238.167.215 > HELO pantherex.co.uk 250 EXSMTP01.ocp.solution1.co.uk Hello [87.194.139.47] > AUTH LOGIN c3VwcG9ydEBwYW50aGVyZXguY28udWs= 334 UGFzc3dvcmQ6 > Q2VudHJpbjA= 235 2.7.0 Authentication successful > MAIL FROM: 250 2.1.0 Sender OK > RCPT TO: 250 2.1.5 Recipient OK > DATA 354 Start mail input; end with . > MIME-Version:1.0 > To: john@pantherex.co.uk > From: support@pantherex.co.uk > Subject: New support ticket submitted > Date: Wed, 28 Apr 2010 12:07:55 +0000 > X-Mailer:By Redhat (PHP/5.3.0) > Message-ID: <20100428120755.471211.support@pantherex.co.uk> > > Hello, > > A new support ticket has been submitted. Ticket details: > > Ticket subject: sdfghj > Tracking ID: 5HS9NR8J22 > > You can manage this ticket here: > http://helpdesk.pantherex.co.uk//admin/ ... 5HS9NR8J22 > > > *DO NOT REPLY TO THIS E-MAIL* > This is an automated e-mail message sent from the support system. Do not reply to this e-mail as the customer won't receive your reply! > > To change your e-mail notification preferences login to help desk administration and go to "Profile". > > Regards, > > Hesk support system > . [EOM] 550 5.7.1 Client does not have permissions to send as this sender Error: Remote host returned "550 5.7.1 Client does not have permissions to send as this sender" Error: Error occurred while sending . [EOM]. Error: Cannot send email to Disconnected from remote host.


Thanks in advnace.

Uziel
lupolo
Posts: 214
Joined: Mon Apr 20, 2009 2:12 pm

Post by lupolo »

I think the following will do the trick

Run this command in exchange shell:

Code: Select all

Add-AdPermission -Identity "Default Receive Connector" -User "NT AUTHORITY\Authenticated Users" -ExtendedRights ms-Exch-SMTP-Accept-Any-Sender
Remember to change Default Receive Connector to the name or your Receive Connector. This does not allow another user to spoof any internal user though according to my tests.

But still my question is open ;)
uziel171
Posts: 3
Joined: Wed Apr 28, 2010 12:59 pm

Post by uziel171 »

Managed to figure it . . . it was this line ( or rather this specific line in each entry :

$smtpusermail = "address@domain.com"; //SMTP email address

for some reason this was making my SMTP server think i was attempting to spoof an address.

changed it to :

$smtpusermail = ""; //SMTP email address

and it now works a treat.
Post Reply