Jump to content

failed faxes


jakebur01

Recommended Posts

"How can I extract the fax # out of this e-mail message?  I will either be using a 3rd party program that handles returned messages or build a little mail reading script that will handle this. I want to extract the fax number located between "To fax #  :" and "From fax #  :".

 

Here is a copy of the e-mail I will receive when the fax failed:

 

 

Status for VSI-FAX fax job: 1025

 

Submitted by: vsifax                E-mail      : myname@testsite.com

Submit time : 06/24 11:15          Queue      : fax1

Result      : expired              Status      : Max tries reached

 

To name    : <none>                From name  : VSIFAX Administrator

To company  : <none>                From company: <none>             

To fax #    : 555-555-3551          From fax #  : <none>             

To voice #  : <none>                From voice #: <none>             

 

Subject    : <none>

Num dialed  : 15048323291

 

usrtag1    : 001210

 

Cover      :  1 pg  default

File  1    :  2 pgs  /u/ssc/ssi7/docdel/001210.vsi

Total pgs  :  3 pgs

 

Attempt  Send-Time    Result              CSI

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

1        06/24 11:16  Timed out          <none>

2        06/24 11:22  No carrier          <none>

3        06/24 11:29  Timed out          <none>

4        06/24 11:36  Timed out          <none>

5        06/24 11:42  Timed out          <none>

 

Link to comment
Share on other sites

you could use the function preg_match_all for this. http://www.php.net/manual/en/function.preg-match-all.php

 

as an example.

<?php error_reporting(E_ALL);
ini_set("display_errors", 1);

$string = "Status for VSI-FAX fax job: 1025

Submitted by: vsifax                E-mail      : myname@testsite.com
Submit time : 06/24 11:15           Queue       : fax1
Result      : expired               Status      : Max tries reached

To name     : <none>                From name   : VSIFAX Administrator
To company  : <none>                From company: <none>
To fax #    : 555-555-3551          From fax #  : 555-123-9876
To voice #  : <none>                From voice #: <none>

Subject     : <none>
Num dialed  : 15048323291

usrtag1     : 001210

Cover       :   1 pg   default
File  1     :   2 pgs  /u/ssc/ssi7/docdel/001210.vsi
Total pgs   :   3 pgs

Attempt  Send-Time    Result              CSI
-------  -----------  ------------------  ----------------
1        06/24 11:16  Timed out           <none>
2        06/24 11:22  No carrier          <none>
3        06/24 11:29  Timed out           <none>
4        06/24 11:36  Timed out           <none>
5        06/24 11:42  Timed out           <none>";



$subject = $string;
$pattern = '~fax\s+#\s+:\s+([0-9-]+)~';
preg_match_all($pattern, $subject, $matches);
var_dump($matches);

?>

note sure if the above is the most optimized regex for this case since i had to guess the format. Hope it helps a bit

Link to comment
Share on other sites

Here's my take...

 

$pattern = '~fax\s+#\s+:\s+\K(??!from).)+~i';
preg_match($pattern, $subject, $matches);
$fax = trim($matches[0]);

 

So first off, since he's just grabbing one number, preg_match should be used instead of preg_match_all.  2nd, to accommodate random fax number formats, I use a negative lookahead and just match everything up to the next "from" and then trim the extra whitespace.

 

 

Link to comment
Share on other sites

Here's my take...

 

$pattern = '~fax\s+#\s+:\s+\K(??!from).)+~i';
preg_match($pattern, $subject, $matches);
$fax = trim($matches[0]);

 

Actually, I can just just put the trailing whitespace in the negative lookahead and skip the trim...

 

 

$pattern = '~fax\s+#\s+:\s+\K(??!\s*from).)+~i';
preg_match($pattern, $subject, $matches);
$fax = $matches[0];

 

Link to comment
Share on other sites

Thank you crayonviolent.  This is exactly what I had in mind. Thank you cssfreakie.

 

Jake

 

Here's my take...

 

$pattern = '~fax\s+#\s+:\s+\K(??!from).)+~i';
preg_match($pattern, $subject, $matches);
$fax = trim($matches[0]);

 

So first off, since he's just grabbing one number, preg_match should be used instead of preg_match_all.  2nd, to accommodate random fax number formats, I use a negative lookahead and just match everything up to the next "from" and then trim the extra whitespace.

 

 

Link to comment
Share on other sites

This thread is more than a year old. Please don't revive it unless you have something important to add.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.