 Hello! Okay, this video is unplanned. This is one of those videos where I've kind of rant and show something because I just had a conversation with somebody and I've got a vent, basically. But here's the situation, okay? This is something that's been going on for years. Somebody I help with owns a business and I help them set up their website and I haven't set up so they have their website, but then they use QuickBooks for their invoices, which I know nothing about other than what I've seen them do. So this is the thing. I set up their website and I set it for upcoming incoming emails to be forward to a Gmail account and then years ago we set it up so that we're using Gmail to send out their emails rather than using our servers. There's multiple reasons that in many cases you don't want to run your own web server. There are cases where you do and there's cases where you don't. For them, I'm not going to. But luckily they were grandfathered in back in the day where you could link an email address and use Google and their SMTP to send mail and it will come from Gmail servers but with your return address of your server and then I have everything forwarded through our server to there. I hope that makes sense. Here's the issue though. When they generate invoices on QuickBooks, QuickBooks tries to act as the email client to send stuff and they want to connect to our server using the SMTP port. STMP SMTP, I said that right. A simple mail transfer protocol port which we don't have open because we don't need it open and it's just a headache to have open unless you're going to moderate and that's why we set the Gmail thing. So what this program should be doing is anytime a program wants to send an email, it should use your default email client. That's why you pick that email client whether it be Outlook or Thunderbird or Yahoo or Gmail, their interfaces and it's very simple to do. I don't know whether QuickBooks can do this but QuickBooks for them is trying to act as their email client and it's causing problems because it's sending it out under the wrong email address and I can fully understand I try to explain this to them that it's QuickBooks and it's lack of capability as far as I know. Maybe it can do it but they've talked to technicians and they can't seem to figure it out. I'm going to show you today how simple it is to generate an email and attach or embed an invoice. It's going to be very, very simple. You can make it a lot nicer and this is not for when I'm doing this. I'm not expecting these people to do this but I'm just showing how quick and easy it is to implement a feature like this. So the fact that QuickBooks can't do it as far as I know is ridiculous and if it was an open source program, be able to go in, write a quick function and add that feature but because it's a proprietary program, I can't do that. So real quick, here we are. We're in a folder on my web server locally and you can see the folder is empty. I'm going to quickly create an HTML page. It's going to be quick. It's going to be simple. I'm doing this in HTML because it's simple to create a little interface like this but you can use any programming language to do this. You can do it with Bash Shell Script. You can do it with C. You can create a Godot game engine with a button that generates invoices and opens up your email client and the main part of this is showing how this is done. So let's look at this real quick. I'm going to create a file. I'm just going to call it index. I'm going to go PHP. It doesn't matter whether it's HTML. We could just create a simple button. Let's do that but then we can make it look a little bit nicer. Now let's create a simple button. It doesn't matter. Technically, we should have HTML. This is my template that I started off with all my HTML pages. I could use this but I don't need to. I can literally just do this. I can go fun fact. The person I'm talking about just called me and that's why I had to stop recording. I thought I had my phone. Well, I did have my phone on silent. I thought that would prevent the messages from coming through but because I use KDE Connect, it still showed their name and phone number on my screen while I was recording and I don't think they want me sharing that information. Okay. I turned off Wi-Fi on my phone so hopefully that won't happen again. Okay. Here we are creating our application. Again, this is not what I'm expecting the end user to do. I'm just showing how simple it is to implement something like this and the fact that a program, big program like QuickBooks doesn't seem to have this functionality is a little ridiculous. Anyway, we're going to say href and we're going to create a link. Okay. And then I'm also going to make this a button. Okay. It's just to make it a little nicer. Again, with the other code I had a minute ago, the button would look a lot nicer but I'm just going to say send invoice. Okay. So this is creating the interface for the person sending the invoice and we're going to say mail to and where we're going to mail it to. I'm going to say client at people.com. I don't know if that's just made up, right? So we're going to send that. That is it to generate an email, right? So I'm going to do that. I'm going to switch over to my web browser here. That was an example before. So here we go. We have a program with an invoice, but send invoice. So theoretically you have this program generates an invoice and then it creates a button again in whatever programming language they use. You click send invoice right here is going to ask me do I want to use my default because I'm do this website is local. It's going to pop this up every time. I'm going to use Thunderbird as my example. Boom. There we go. It opened up an email from me to them. But that's it. We need more than that, right? So we're going to go back in here and we're going to add to this. We're going to say subject equals your invoice in voice. There we go. Let's refresh this. So reloading the program, click this. And now when I open up my email client, look, it now is coming from me to them with a subject. Perfect. And of course, it will generate probably an invoice number that it could put in the subject line there. Let's close that. Let's go back into the program now. So now we're going to say and body equals and I'm doing this with Thunderbird but work with other male clients, even a web based one like Gmail or whatever you have set up as your default email client, which is my point is that anytime you're saying an email, it should use your email client, not some third party application. So here I'm going to make it look like I'm going to say something like this is your invoice, right? Refresh this, send it, open up my email client. And there you go says this is your invoice. We're going to make it look a little bit nicer than that. And all we have to do is put in some HTML tags. So make this a header. And we'll put a horizontal line break. And then we'll do a button button that says click here for invoice. Load that up, click this, open up my email client. And look, this is your invoice and a button. And of course, that button doesn't do anything right now, but we can add a link to an invoice if you have a server where the invoice is. Okay, so let's see. But then we just have to put another href tag here, right? href equals, and this could be my company at site.com. Again, just made up address, want to make sure that I'm using single quotes or double quotes, depending on what I'm using on the outer tags. And of course, we want to close that off with this. Refresh this and now open up my email client. Boom. So they would get this with a little button that would link to the invoice. Now, if we want to, we can also pretty sure, you know, doing an attachment would be easy off the top of my head. I don't know how to do this. I'm doing this off the top of my head. Let's say we wanted to have a little bit more. We'll put a line break in here. You know, let's put the line break inside the h, the a tag so that they can click on this image. I did before this, I Google searched images of invoices so that I could attach one in. So I put up on my website. So now I have to do is say, I am G source equals. And I am going to do this HTTPS. And again, you should be single quotes in my case. Oops, films by chris.com forward slash temp invoice. That should be a lower case. And we're gonna say JPEG. So save that. And if I typed everything right, send invoice, open my email client. And look, again, this is just the first invoice that came up went on a Google image search. So yeah, so they would this and then they can click on the image or this went sent and would bring them to the actual invoice if you had that up on the server, which why wouldn't you that mean that's the way you have control over it as, you know, the owner of the company. Although if you're using someone like QuickBooks, it probably be on their server. So that's it. And again, I want to emphasize that I'm not expecting the end user to be doing this. But I'm just showing literally one one long line of code, but one line of code in any programming language, you can do this. I could do this with a bash script. Again, I can do a lot of game stuff with Godot game engine, I could create a button that generates something and then opens up your email client like this, any program language, it's this simple. It is this simple. And there's no reason not to other than control again, these proprietary programs, these companies, they want you dependent on them so they can suck you dry and collect all your data. And that's what's happening is they're paying a monthly fee because it's not like the old days where you buy the program once and then use it and then eventually they discontinue it. So you have to buy a new version and upgrade. They're probably being charged every month for a service and they want you going through their servers so they can control all this. So that's why they're not probably not letting you use your own mail client. And that should be assigned to anybody that don't be using that program. Unfortunately, I don't really do invoices and stuff. I would just seem like something simple. I understand payroll supposedly can be confusing, but invoices seem like pretty simple setups to me. So I don't understand why you need to buy special software do it. But there are open source programs out there that you can use. I just can't recommend any because I don't use them myself. I have talked to friends who own companies and they've asked me if I've known of any open source programs. I know for personal finance stuff, I've heard great things about K my money and what's G cash or GNOME cash. But as far as like business stuff, I've googled and given lists of friends and said, Hey, I can't vouch for any of these programs, but they're free. They have some of them are webinar faces so you can test it on their test server. But if you ever want to, you can install on your own server, which if you want to have someone else runs server, that's fine. But the fact you're using open source programs that you can move to your own servers. That's what's important. It's the freedom to be able to do that whether you choose to or not. But I can't go to these people and be like, you need to stop using QuickBooks because I can't personally vouch for anything else. But I do for years now been saying, Well, your program is the issue here. They keep thinking that the email server is the issue. It's like, No, your program is is very thin lined on what it can do. And it doesn't fit your circumstances. Other besides buying a whole new web server and setting up just to work with their application, but you shouldn't have to do that. So again, this is very, very simple here. I wrote it all online. You can break it up on different lines. But literally, it's that simple. We just say, Hey, we're going to mail to this person. This is your subject. This is your body. I use some HTML tags just to make it look nice. And of course, you can have your own was it signature at the end, you know images and whatever. And then I made it a button. And again, we can close this. This is what it looks like here. But I could do like this. Let's see. Just use my simple template from my vim templates. So we'll jump down to the bottom here, move this up here. And we will delete that delete that input box, delete that. And I think with the button, I want to add in the class. Now if I do that, I come back here, it's a little bit bigger, a little bit nicer, I can make it different colors. And of course, it would be part of whole interface. But that's it. That's all I want to talk about. Again, a little bit of rant based on conversations that I've had with somebody who gives me ideas for these videos all the time, because it's such a simple concept, but they can't seem to grasp it. And although it might be over their heads, many of you come to me looking for programming advice. And I want to show you how simple it is so that if you do become, you write some sort of application, you should be able to do something simple like this. And you should find it ridiculous when programs can't. So thanks for watching. As always, I hope that you have a great day.