Improve company productivity with a Business Account.Sign Up

x
  • Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 1801
  • Last Modified:

Sending From Non-authenticated 365 Email

This may be a dumb question, as I am basically asking how to spoof an email address.  In this case, the spoofing actually serves a functional purpose.  

Here is what I am trying to do:

I have dell's help desk/computer management software called "Kace".  Kace allows users to submit tickets via email to create cases.  Instead of having users create tickets through email, I want to create a one-click solution that will allow users to alert IT staff of an issue by clicking a button.

Email setup:
We use office 365 to host our email
Kace connects to a help desk account in 365 using POP3
Kace uses this account when creating tickets and sending updates to the submitter

The one-click solution:
A user clicks a button on a php page, and an email is sent to the help desk address that is then picked up by Kace to create a ticket.  
The user gets an email stating that the ticket has been created.

Problems:
When the user clicks the button, I can identify their email address, but I cannot send an email using this account without asking the user for their 365 credentials.

Question:
Could I configure a 365 account to allow this type of non-authenticated mail to reach its inbox?

Please let me know if I need to provide any additional information.  Thanks for reading.
0
thedeal56
Asked:
thedeal56
  • 7
  • 7
1 Solution
 
Scott Fell, EE MVEDeveloper & EE ModeratorCommented:
You would simply send with the name as the user's email, but the sending credentials would be something generic like your own email or "admin@" etc.  Their ticketing system will sense the "from" address, not the credential.  What you are asking about is common and I do the same for a similar situation.
0
 
thedeal56Author Commented:
Thanks for the fast reply.  That's really good news.  Is this what you're talking about?
$mail = new PHPMailer();
    $mail->IsSMTP(); // set mailer to use SMTP
    $mail->Host = "smtp.office365.com"; // specify main and backup server
    $mail->SMTPAuth = true;
    $mail->Port = 587;
    $mail->SMTPSecure = "tls";
    $mail->SMTPAuth = true; // turn on SMTP authentication
    $mail->Username = "helpdesk@domain.com"; // SMTP username
    $mail->Password = "somepassword"; // SMTP password
    $mail->From = "helpdesk@murfreesborotn.gov"; // the authenticated account
    $mail->FromName = "theuseremail@domain.com"; // the user's email ?
    $mail->AddAddress("helpdesk@domain.com"); // Address you're sending to

Open in new window

0
 
Scott Fell, EE MVEDeveloper & EE ModeratorCommented:
These two lines can be from the user filling out your form or however you have authenticated them and just using their address

    $mail->From = "helpdesk@murfreesborotn.gov"; // the authenticated account
    $mail->FromName = "theuseremail@domain.com"; // the user's email ?

Can use variables for whatever you want

    $mail->From = User_email_address // the authenticated account
    $mail->FromName = User_full_name_or_email_address; // the user's email ?
0
Upgrade your Question Security!

Your question, your audience. Choose who sees your identity—and your question—with question security.

 
thedeal56Author Commented:
I was trying that out, but I was running into an issue where the authenticated account didn't have permissions to send as the from address.  I will try this again real quick just to make sure. Thank you.
0
 
Scott Fell, EE MVEDeveloper & EE ModeratorCommented:
The authentication needs to be your office365 domain.  If you have an office365 account for helpdesk@yourdomain.com and use that password it should work.

I am not as well versed in php.  In asp when I send via CDO there are some extra parameters for authentication.  I use http://www.paulsadowski.com/wsh/cdo.htm
0
 
thedeal56Author Commented:
Just to confirm, If I authenticate as one user, but attempt to send as another user, I get this error:

SMTP Error: data not accepted.

I haven't displayed the logs to go deeper on this error, but I suspect it has to do with incorrect send as permissions.
0
 
Scott Fell, EE MVEDeveloper & EE ModeratorCommented:
Do you have permissions set to allow for smtp relay?
0
 
thedeal56Author Commented:
I'm not sure if there are specific relay options per account on the 365 side, but if I run my script where I send from the account I authenticate with, I do get the emails.
0
 
thedeal56Author Commented:
I enabled the verbose logging just to see the actual error I was getting:

Client does not have permissions to send as this sender
0
 
Scott Fell, EE MVEDeveloper & EE ModeratorCommented:
Is the sender's address an actual paid account?  Or just an alias?  

I don't have a way to test this anymore.  My client switched to google apps.  

If you go to users and groups, https://portal.microsoftonline.com/UserManagement/ActiveUsers.aspx will you see the "from" address in this list?

Based on this, http://technet.microsoft.com/en-us/library/dn554323.aspx, I wonder what would happen if you tried it without authentication as long is the IP belongs to the domain.
0
 
thedeal56Author Commented:
The sender's address is an actual account, and it does show up in that list.  I will look further into connection unauthenticated, but here's the message I got from dropping the authentication:

MAIL FROM command failed,530,5.7.1 Client was not authenticated

Do you think it would be possible to use a gmail account for the initial email? Could this restriction on sending as another address be a security measure that 365 has taken? Thanks so much for your help with this.
0
 
Scott Fell, EE MVEDeveloper & EE ModeratorCommented:
I know it works in google apps.  Like I said, I can't get into the office365 domain I used to.

What about going to Exchange Admin, on the left click on Protection, then the top menu in the middle, Connection.  From there you can scope the ip from your webserver.
0
 
thedeal56Author Commented:
I ended up trying this setting:

authenticate and send from the same user, but add a reply to variable
$mail->AddReplyTo('useremail@domain.com', 'Some User');

Open in new window


Everything seems to work fine now.  Thank you very much!
0
 
Scott Fell, EE MVEDeveloper & EE ModeratorCommented:
That is the easy way....!  

Glad it works.
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

Join & Write a Comment

Featured Post

Keep up with what's happening at Experts Exchange!

Sign up to receive Decoded, a new monthly digest with product updates, feature release info, continuing education opportunities, and more.

  • 7
  • 7
Tackle projects and never again get stuck behind a technical roadblock.
Join Now