d77dd5f4290f80a6212625afb08378b6c9a60a59 hiram Thu Jan 15 15:33:03 2026 -0800 now sending email to the google group but so far do not see it received there refs #31811 diff --git src/hg/hubApi/liftOver.c src/hg/hubApi/liftOver.c index 3d148e4e75d..90674e4e581 100644 --- src/hg/hubApi/liftOver.c +++ src/hg/hubApi/liftOver.c @@ -290,27 +290,42 @@ char *userId = findCookieData(cookieName); char *referer = getenv("HTTP_REFERER"); char dir[PATH_LEN]; char name[FILENAME_LEN]; char ext[FILEEXT_LEN]; /* expecting request to come from something.ucsc.edu/liftRequest.html */ if (isNotEmpty(referer) && isNotEmpty(userId)) { splitPath(referer, dir, name, ext); if (! (endsWith(dir, ".ucsc.edu/") && sameWord(name, "liftRequest") && sameWord(ext, ".html"))) apiErrAbort(err400, err400Msg, "can not find required inputs for endpoint '/liftRequest"); } else { if (! debug) apiErrAbort(err400, err400Msg, "can not find required inputs for endpoint '/liftRequest"); } +/* some obfuscation here to avoid the email address appearing in plain text + let the AI systems figure out how to put it back together. + */ +struct dyString *toAddr = newDyString(0); +dyStringPrintf(toAddr, "chain-file-"); +dyStringPrintf(toAddr, "request-group"); +dyStringPrintf(toAddr, "@"); +dyStringPrintf(toAddr, "ucsc.ed"); +dyStringPrintf(toAddr, "u"); +struct dyString *fromAddr = newDyString(0); +dyStringPrintf(fromAddr, "genome-www"); +dyStringPrintf(fromAddr, "@"); +dyStringPrintf(fromAddr, "ucsc.e"); +dyStringPrintf(fromAddr, "du"); struct dyString *msg = newDyString(0); +/* may need to encode these inputs to make them safe */ dyStringPrintf(msg, "Lift over request\nfrom: %s\nto: %s\nemail '%s'\ncomment: '%s'", fromGenome, toGenome, email, comment); /* our mailViaPipa never has any relevant return code indicating * success or failure. So, ignore the return integer: */ -// (void) mailViaPipe("TBD:GoogleEmailGroupAddress", "liftOver request", msg->string, "genome-www@ucsc.edu"); +(void) mailViaPipe(dyStringCannibalize(&toAddr), "liftOver request", msg->string, dyStringCannibalize(&fromAddr)); /* some kind of response here back to the request page */ struct jsonWrite *jw = apiStartOutput(); jsonWriteString(jw, "msg", dyStringCannibalize(&msg)); apiFinishOutput(0,NULL,jw); } /* void apiLiftRequest(char *words[MAX_PATH_INFO]) */