-
Notifications
You must be signed in to change notification settings - Fork 0
SMTP mailbox for linux based packet node servers
License
GPL-2.0, GPL-2.0 licenses found
Licenses found
GPL-2.0
LICENSE
GPL-2.0
copying
radiocatalog/axmail
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
axMail - an SMTP mailbox for the various linux node frontends. PREFACE: First off, sincere thanks to those who have written to tell me that they use axMail, like what I've done to axMail, and for the enthusiasm shown via words and/or code contributions for the program in hopes of keeping packet radio networks around the world alive! INTRO: Greetings and thanks for taking a look at the program. Below I've posted a kind of history of the program to the best of my knowledge taking text from existing files. Rather than trying to reinvent the wheel and after seeing this program before on Labrat's radio.linux.org.au site, I decided to try and give some life into it... partially with the assistance of Phil N1XTB nudging me pretty consistantly for many months in helping him get an SMTP agent in his linux based packet node server without having to install an xNOS overhead node ontop it. :) Please do take a moment and read the text based files included with this package so you're a bit familiar with what it does so that you don't get a false perception as to what it can and/or can not do. axMail just might not be what you're looking for or expecting for a node based plugin CHANGE HISTORY: axMail 2.13 Updated June 24, 2021 - Went through the code and fixed multiple compile warnings. Warnings do not affect the program/binary from compiling or funcitioning BUT rather gives the author(s) a warning that possible compile instructions may have changed or are changing. axMail 2.12.2 Updated January 18, 2021 - Fixed bug in mailcmd.c where sending acted funky on 64 bit systems. axMail would segfault out before properly returning the user back to the mailbox prompt. - While at it also fixed some compiler warnings in mailcmd.c - edited defines.h to fix old path from /var/ax25 to /var/lib/ax25 - edited defines.h to reflect this version. axMail 2.12.1 Updated January 17, 2021 - Maintenance release moving /var/ax25/axmail to /var/lib/ax25/axmail to honor linux file system rules. - Changed defines.h to reflect this version. axMail 2.12 Updated August 17, 2020 by Brian Rogers (N1URO) <[email protected]> - After fussing with an updated ClamSMTP system that appears to have some issues at least in regards to the Debian repositories I have come to learn that the MTA used (postfix) beginning with version 2.3 now may use milter (mail filter) systems. Details on how to configure the newer ClamAV-Milter system are at https://uronode.n1uro.com/linux/ under the ClamSMTP link at the bottom of the page. This is quite a major enhancement to axMail-Fax! Since now it will scan for either clamsmtp OR clamav-milter the outputs on mails show only that the mail has been scanned by ClamAV. axMail 2.11.1 Updated February 21, 2020 by Brian Rogers (N1URO) <[email protected]> - removed the #ifdef CLAMSMTP routine from config.h - fixed my routine for checking for /etc/clamsmtpd.conf so that it no longer needs to be previously defined in config.h and auto senses now in mailcmd.c. It dawned on me that the reason it was segfaulting if there was no .conf file that trying to fclose() a file that did not exist was the reason that it was causing axmail to segfault. - made this version 2.11.1 in defines.h. - updated INSTALL and README to reflect history and instructions. - updated Makefile so make upgrade does not replace config files since it's not required if you're simply upgrading from axmail-2.9 or greater. axmail 2.11 Updated February 18, 2020 by Brian Rogers (N1URO) <[email protected]> - Figured out how to add ClamSMTP to the mail system's MTA. Details are posted on https://uronode.n1uro.com/linux/axclamsmtp.shtml This will scan for viri both IN and OUT bound mails! Very handy! - Added a define routine in config.h now. You must #define or #undef CLAMSMTP based on whether or not you're running clamsmtp and have /etc/clamsmtpd.conf in existance. If it's elsewhere on your system create a symlink to it and you'll be fine. - added the fact when #defined where mails are tagged with the fact that your mail is being scanned by CLAMSMTP. This was done in mailcmd.c - upped the version to 2.11 in defines.h - added notes in INSTALL in regards to the new #define in config.h axmail 2.10 Updated April, 2019 by Brian Rogers (N1URO) <[email protected]> - added online help for the "Delivery Receipt" command. This keeps it in line with all the other online helps. - modified defines.h with this version number and also increased the year that I'm still working on modifications to the project. axmail 2.9 Updated March, 2018 by Brian Rogers (N1URO) <[email protected]> - Removed asking for password upon new user login, instead added a new field to axmail.conf for "SysopMail". Now the sysop has to put in their email address as to inform the end user to request their desired password into the system, especially if the sysop is running pop/imap features on their system. This will prevent users from entering in plain text passwords via unencrypted RF paths unlike other systems such as WL2K. I feel this is a major security fix for axMail-FAX. - added some line feeds in quit.c per suggestion of Tomasz SP2L so if another program changed the user's mail spool file the warning displays clearer. - changed version number to 2.9 in defines.h and changed the end year of maintenance from 2017 to 2018. axmail 2.8 Updated November, 2017 by Brian Rogers (N1URO) <[email protected]> Changes: - added SPers as a command per the suggestion of VE1JOT. This was done in command.c and was actually quite simple to impliment. The logic behind it is to match the mail send command sets with those of standard PBBS messaging commands. * Note: The station who mainly requested this feature via VE1JOT, KB9PVH urged that flags, cc, and bcc options be supressed to make it more user friendly on HF at 300 baud. While I'm really NOT a fanatic about this, I do have compassion for those on HF. Steve gave me a different idea than what I was going to do but I did impliment it into mailcmd.c, mailcmd.h and command.c. If one needs a read receipt or to send cc/bcc copies of their message then S still is an option. - added a "spers" .hlp file to the archive. - changed defines.h to reflect version 2.8. - updated welcome.txt to be more generic rather than be version specific. - modified mailcmd.c to now prompt for a "carbon copy" address when sending mail. This allows for a duplicate of the message to be sent to the second person one wishes to copy on the mail. - edited this file. - while I was at it, I decided to add a "blind carbon copy" feature. This will send a copy of a message to the user specified HOWEVER, they will NOT be listed in the recipient listings. For those using raw terminals, it's possible to NOT enter a 'cc' but still enter a 'bcc' address. - edited help files: send.hlp and spersonal.hlp to help guide users on how to best send mail. - created a bypass method so that if users did not wish to use cc or bcc mail, they can bypass them instead of being prompted for them - suggested by VE1JOT. - added online help for send/sp|cc|bcc mail. - added a new signature file function to the system in both command.c and in mailcmd.c. If no signature file exists, it will instruct the user on this fact and also inform them how to make one using the new SIgnature command. Note: If no ~/.signature file exists mail will still be sent, just without a 1 line siguature (max: 79 characters). - bullet proofed both the autoforward and signature file routines in command.c by insuring that a null string not only halts execution of both but also removes both ~/.forward and ~/.signature files respectively. - cleaned up the send signature a bit and added my little spam ad even if there is no signature file present. This was done in mailcmd.c. - added a string in the signature prompt which informs users how to clear their signature if they desire such. This was done in utils.c - Added special critical instructions to INSTALL. I didn't know if I had these in there or not but SP2L informs me I did not. Thanks to Tomasz. - Fixed a bug that when the mailbox file(s) weren't found for the system MTA (aka: postfix) axMail would segfault. Now not only does it not segfault but also instructs the user to inform the sysop of this error. This bug existed since version 0.0.1. I've been wanting to do something about this for IONs but didn't get to it until now. This was done in quit.c - Fixed a couple of typos in README. I have a very difficult keyboard! - Per the suggestion of G4APL (who gives us many great ideas - and why do I refer to myself in plural? I need a DIET!) I did two things: 1 - when listing mail there's no message date stamp within the listing. added in mailcmd.c 2 - reordered the mail listing fields where I felt they'd make the most sense. Message subject, then message date, then message size are the last 3 fields listed. They should also be kept in a column justified manner of sorts. 3 - added a (St)atus header so the user has a better definition of the status of a specific message. axmail 2.7 Updated 18 May, 2017 by Brian Rogers (N1URO) <[email protected]> Changes: - Thanks to Van W1WCG, a bug was spotted in the SR command where if the user entered a parameter such as a message number for example, it wouldn't properly function. This has been fixed. Thanks Van! - Forgot to take the "beta" tag out for 2.6. Oops. Fixed. - I know in the past I had a 'cc' command for sending mail, and it's been suck in my craw to readd it since. axmail 2.6 Updated 22 September, 2016 by Brian Rogers (N1URO) <[email protected]> Changes: - changed version number in defines.h - fixed error message when a pop client has deleted mail from the main mail spool file. - removed excessive receipt warning spotted by a gent who identifies himself as rigor. This was in mailcmd.c in do_readmsg() - while looking at the end of that routine, it just gave me an itch that said "if you can look for a warning about a requested receipt, then numbnutz you can offer the reader a chance to just generate a receipt without having to do "SR" as previously stated at the end of the mail. So, with that said and to get feeling back in my genitals, I wrote a routine that asks the reader if they wish to send a receipt, and it also echos where it's destined and confirmation it was sent. - added an "--- end of message #* ---" tag at the end of mail when it as finished displaying. This was done in mailcmd.c - fixed an existing bug in the message routines where for each message it wasn't resetting the receipt pointer! This bug existed since I introduced the receipt "finder" in the messages. I'm shocked that it wasn't reported to me by someone earlier. Now *only* if a message has requested a receipt will it show that a receipt has been asked for... whew! - So many missing online help files! Again I'm surprised no one brought this to my attention. How did we get along with them? "Oh my!" - Sulu - Updated this README file. axmail v2.5.1 Updated 28 September, 2015 by Brian Rogers (N1URO) <[email protected]> Changes: - added axmail.8 man page as per spec of Debian downstream. - modified Makefile to include axmail.8 manpage installation for both new and upgrade options. - modified defines.h and this document to reflect maintenance release. axmail v2.5 Updated 30 May, 2015 by Brian Rogers (N1URO) <[email protected]> Changes: - added new delivery receipt function to the send routine. This compliments the read receipt function in the event of high priority mail. Typically the read receipt is an option generated by the recipient who may not decide to generate one. At least this modification ensures with an ESMTP delivery that the sender using axMail will get a reciept from "MAILER-DAEMON" which will verify the status of delivered mail. This change was done in mailcmd.c and is designed with the sendmail binary included with postfix. - updated this README file. - updated version number in defines.h axmail v2.4 Updated 25 April, 2015 by Brian Rogers (N1URO) <[email protected]> Changes: - cleaned up mbox.c where I had originally placed the receipt checker routine in. This caused loops within the buffer that displayed the message. The true routine lives in mailcmd.c - added patch to Makefile provided by Jaroslav at Red Hat for distribution downstream compiles to make packages. - changed version in defines.h - major change in command.c, added a new Autofwd command to allow users to auto-forward mail from a remote system to their "home" axMail-FAX base system. Could also be used to forward mail to their internet accounts. - added autofwd.hlp file. - alphabetized the commandset listing, removed redundantly spelled commands. - reworked Makefile and added an "upgrade" option so new files ONLY are deployed after make. Execute using: "make upgrade" - updated this file. axmail v2.3.1 Updated 5 February, 2015 by Brian Rogers (N1URO) <[email protected]> Changes: - added a flag in mailcmd.c where if the request for a receipt exists in a mail message, a bell and a warning sign is generated after the message has been read by the user with instructions to use SR to generate a receipt. This was a difficult routine for me to think of considering the various race conditions that can be expected and met. - updated welcome.txt with version upgrade and new feature list. - updated README. axmail v2.3 Updated 5 February, 2015 by Brian Rogers (N1URO) <[email protected]> Changes: - Added a new "Receipt" request flag in mailcmd.c by request of Mitch AB4MW. This defaults to NO but when flagged to YES, a request will be sent to the remote client's agent. If the agent supports such, they will be prompted whether or not to honor your receipt request. This is history as NO AGENT FOR PACKET TERMINALS SUPPORTS THIS! The function of a generated read receipt is similar to how HylaFax generates confirmation of transmission receipt mails to your mailbox. Currently mail read in axMail will NOT generate a receipt back. I may work on this later, but for now it doesn't exist. * My thoughts of the receipt function is negative. The fact that I may be sending notification that I'm in my email client to a remote destination IMHO is such that a webcam may as well be turned on and watch me do email, and send the stream to "Big Brother" and I don't mean the television show. </rant> - Updated defines.h with the new version number. - Updated welcome.txt so the new version number is displayed. axmail v2.2 Updated 25 December, 2014 by Brian Rogers (N1URO) <[email protected]> Changes: - Made some maintenance changes, but forgot to log them in here. axmail v2.1.1 Updated 30 October, 2014 by Brian Rogers (N1URO) <[email protected]> Changes: - Makefile Code provided by Bob Tenty VE3TOK to make it more compatable with newer GCC compiler requirements. - utils.c Code provided by Bob Tenty VE3TOK to fix a warning produced when compiling. - defines.h Changed version number to reflect the changes incorporated by Bob Tenty VE3TOK and committed to the subversion repository. axmail v2.1 Updated 31 July, 2014 by Brian Rogers (N1URO) <[email protected]> Changes: - axmail.c Code provided by Jaroslov OK2JRQ fixes a potential security hole in the system privilege matching. - global axMail is now under review for considerations as standard packaging in RedHat's fedora project. It appears it's going to be added as a package. axmail v2.0 Updated 8 July, 2013 by Brian Rogers (N1URO) <[email protected]> Changes: - defines.h Updated version number to reflect version release 2.0. Version 1.0.5 was simply a maintenance test package to try and reincorporate what I had done up to version 1.0.6 which I believe was one of my last releases up to 2009. Since I've done all that I can recall at this point and time, I decided to match URONode's release numerics with a 2.0 release version. axmail v1.0.5 Updated 5 July, 2013 by Brian Rogers (N1URO) <[email protected]> Changes: - defines.h Updated email listings to reflect the most current ones I could find including my own. Also added 2013 to the years worked on axMail by me. - quit.c Forced ALL mail, read or otherwise when user quits to save to the user's system mailbox. This is for reverse compatability with those who may also run a web-based email service on the internet such as NeoMail, EMUMail, etc. Prior, the system was supposed to separate any read mail (and all accompanying mail in that session) to the axmail ~/mbox file. We don't want this for the specific reason of "reverse email client" compatability. axmail v1.0.4 Updated 23 May, 2008 by Brian Rogers (N1URO) <[email protected]> Changes: - setpwnam.c Changed the way SIGPIPE was handled. Instead of being ignored, it will now read a SIGQUIT properly if a QUIT is signaled to axmail either via a shell prompt, or a node frontend. I've been noticing especially on some timeouts that temp files don't flush as they should and the user's directory can start to fill up. axMail v1.0.3 Updated 2 December, 2007 by Brian Rogers (N1URO) <[email protected]> Changes: - mailcmd.c Reset the way I wanted to handle the user input routine for sending faxes. Commented out some more unneeded/unused code in the do_fax routine... will clean it up in next release or so. - mailcmd.c cleaned up a bug I introduced in the never released 1.0.2 where the X-Mailer was duping itself after each line of the body of a message. - sfax.hlp Reworded the SFax help file to help show some examples of how to format the header. axMail v1.0.2 Updated 24 November, 2007 by Brian Rogers (N1URO) <[email protected]> Changes: - mailcmd.c Cleaned up some of the code in SFax. Also made some cosmetic changes. axMail v1.0.1 Updated 31 October, 2007 by Brian Rogers (N1URO) <[email protected]> Changes: - mailcmd.c Added a new routine to allow users to send faxes. This is defined by the command "SF" for Send Fax. The routine was taken from the "S"end function however since it's a one-way transmission, there is no reply available nor is there an option for users to fax to any fax service as some I know are pay services. - config.h added definitions for faxgate in axmail.conf - config.c added routine to allow for faxgate as a variable and be called from mailcmd.c - defines.h version upgraded from v1.0.0 (unreleased - test version) to v1.0.1 - etc/axmail.conf Added new line called "FaxGate" with an example of how to properly configure this line. - etc/help/sfax.hlp Added new file "sfax.hlp" which is an online help file for the SFax command. axMail v0.0.9 Updated 26 September, 2006 by Brian Rogers (N1URO) <[email protected]> Changes: - mailcmd.c Added a new routine that prompts the sender whether or not the message is of an emergency/high priority mail message. If it's emergency message then the headers are appended with an X-code flagged in such a manner that Eudora and Outlook will display the received mail with a red flag of sorts. The idea of such came to me in thinking of "what can I do to help improve means of emergency communications using TCP/IP, Linux, and packet radio?" Having the ability to "red flag" an SMTP message I don't believe has yet to be available in any packet messaging system... axMail I hope is the first. If a user just hits enter, or selects "no" then the mail message is sent under normal send routines. found a minor bug in my routine where if an end user answered "yes" in wanting to send an emergency/high priority message the system ignored the request and sent it as 'normal' delivery. Made a minor change to bullet-proof the responce. Added online help text if user is unsure about sending a message flagged urgent or normal. This text is available when the user is prompted for priority selection by hitting "?" at the prompt. - defines.h Version updated from v0.0.8 to v0.0.9 axMail v0.0.8 Updated 2006 by Brian Rogers (N1URO) <[email protected]> Changes: - mailcmd.c Rewrote and incorporated code provided by IW3IJQ how axMail inserts it's version number in the X-Mailer: string. - mailcmd.c Added an X-Origin: string to show those peeking at mail headers just how the message was possibly sent... by AMATEUR RADIO! - axmail.conf Added config option in "AllowMail" for axhome, a rewrite of code submitted by Stefano IW3IJQ. While I stripped out home directory structures similar to that of qmail or axspawn, Stefano convinced me that it may be easier to manage home directories for axMail users who don't have shell access to branch out within a preset directory. - defines.h Updated version number from 0.0.7 to 0.0.8 - axmail.c and config.c Rewrote and incorporated code to allow for the routines to use what Stefano IW3IJQ originally labled "newuhome" to use "axhome". While I was at it, I rewrote and shortened the error text pushed to a user who doesn't have permission to use such a directory. * Note: When I write error texts and menus, I try to write them for users on a multi-hop 1200 baud path thus the shorter the better as long as context isn't lost and for long distance hops where full paclen may cause retries (worse yet timeouts!) axMail v0.0.7 Updated 2005 by Brian Rogers (N1URO) <[email protected]> Changes: - cosmetics My usual "I like seeing this this way" type cosmetics... too many to mention! - adduser.c changed the hard coding of user 'home' directories so that instead of them going into a period delimited sort, just dump em all into /home/<user> which seems to be "the norm" on most systems I've had to assist with. - adduser.c fixed a bug where creating a user was actually causing the program to segfault upon exit the first time a user went into the mailbox! The node frontends hid this segfault as the program still flushed itself from ram but I spotted it when running it at a command prompt. The segfault came when axMail attempted to write mail back to the user's system mailbox and it didn't exist. How I fixed this is listed next. This may just be a new bug that appeared with the upgrading of libs, this I'm unsure of and since I have no desire to go backwards I have decided to actually make a minor routine... - welcome.txt New users are now sent a "welcome" message that the sysop can easily customize to their desires. It's located at /etc/ax25/welcome.txt. I figured that since axMail was segfaulting because such a file did not exist, I might as well make use of this need by having the program send the user a greeting. - defines.h Changed paths to be more in line with the more modern type configs as a default. Paths can still be defined by the sysop prior to compiling axMail. - Makefile I changed the default of make install to include all of the subroutines within the Makefile yet leaving such things as "make installbin" available as runtime options if just a binary refresh creation is desired. - other I'm sure I missed a note or two *shrug* axMail v0.0.6 Tweeks made by Marius Petrescu (?) I know there was a ver 0.0.6 which I at one time had but lost and can't seem to find it. My (n1uro) changes may have alread been incorporated. axMail v0.0.5 True mailbox functionalities created by Marius Petrescu. Added Mailbox save routines (compatible with the command line mail agent, including ~/mbox file) axMail v0.0.4 Copyright (c) 1996 Heikki Hannikainen (OH7LZB) <[email protected]> This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. Don't give this one to anyone yet... it is NOT ready for distribution! This is a simple mail user agent intended to provide the mail functions in xNOS in a Linux ax.25 environment. If required, it creates a normal user account for each new user (code mostly taken from axspawn by Joerg Reuter (DL1BKE)), so that they can receive mail on the system. axMail uses sendmail (or similar) to deliver mail, and reads mail from each user's system mailbox (/var/spool/mail/username). It does not provide any means of transferring mail between hosts. axMail provides a simple, low-overhead user interface, much similar to /bin/mail, xNOS and the packet BBS systems. It's useful for providing good SMTP mail services for "dumb" ax.25 users over slow radio channels. axMail is intended to be called from node. It takes one command line argument of the user's callsign (with or without SSID). It must be run as root, but it setuid()'s itself to the respective user's privileges as soon as possible. It might run from ax25d as well. It can also be executed from a shell with user privileges. Some code (command parser, configuration file stuff) and the internal architecture was taken from the LinuxNode frontend by Tomi Manninen (OH2BNS). Thanks! INSTALLATION: See the file: INSTALL TODO: Suggestions? -- Brian Rogers <[email protected]> [n1uro@n1uro.#cct.ct.usa.noam] ftp://ftp.n1uro.net/pub/hamradio/packet
About
SMTP mailbox for linux based packet node servers
Resources
License
GPL-2.0, GPL-2.0 licenses found
Licenses found
GPL-2.0
LICENSE
GPL-2.0
copying
Stars
Watchers
Forks
Packages 0
No packages published