Spaces:
Sleeping
Sleeping
Commit ·
493ea13
1
Parent(s): bfdf549
Add customizable sender name for emails - shows in recipient inbox instead of default
Browse files
backend/routers/email.py
CHANGED
|
@@ -233,6 +233,7 @@ async def send_emails(
|
|
| 233 |
event_name: str = Form(""),
|
| 234 |
event_date: str = Form(""),
|
| 235 |
client_company: str = Form(""),
|
|
|
|
| 236 |
name_color: str = Form("#000000"),
|
| 237 |
font_size: int = Form(60),
|
| 238 |
x: float = Form(None),
|
|
@@ -282,7 +283,7 @@ async def send_emails(
|
|
| 282 |
template_bytes,
|
| 283 |
subject,
|
| 284 |
body,
|
| 285 |
-
FROM_EMAIL,
|
| 286 |
SENDGRID_API_KEY,
|
| 287 |
name_column,
|
| 288 |
email_column,
|
|
|
|
| 233 |
event_name: str = Form(""),
|
| 234 |
event_date: str = Form(""),
|
| 235 |
client_company: str = Form(""),
|
| 236 |
+
sender_name: str = Form("Volaris Team"), # Custom sender name for email display
|
| 237 |
name_color: str = Form("#000000"),
|
| 238 |
font_size: int = Form(60),
|
| 239 |
x: float = Form(None),
|
|
|
|
| 283 |
template_bytes,
|
| 284 |
subject,
|
| 285 |
body,
|
| 286 |
+
f"{sender_name} <{FROM_EMAIL}>" if sender_name else FROM_EMAIL, # Format as "Name <email>"
|
| 287 |
SENDGRID_API_KEY,
|
| 288 |
name_column,
|
| 289 |
email_column,
|
frontend/src/components/ReviewSendStep.jsx
CHANGED
|
@@ -10,6 +10,7 @@ const ReviewSendStep = ({ fileData, designParams, mappings, onBack }) => {
|
|
| 10 |
const [subject, setSubject] = useState("Your Attendance Certificate - {event_name}_{event_date}");
|
| 11 |
const [body, setBody] = useState("Dear Dr {first_name},\n\nThank you for attending {event_name}.\n\nYour certificate is attached.\n\nBest Regards,\n\nVolaris Team on behalf of {client_company}");
|
| 12 |
const [fromEmail, setFromEmail] = useState("");
|
|
|
|
| 13 |
const [sending, setSending] = useState(false);
|
| 14 |
const [status, setStatus] = useState(null);
|
| 15 |
const [progress, setProgress] = useState(null);
|
|
@@ -44,6 +45,7 @@ const ReviewSendStep = ({ fileData, designParams, mappings, onBack }) => {
|
|
| 44 |
formData.append("event_name", eventName);
|
| 45 |
formData.append("event_date", eventDate);
|
| 46 |
formData.append("client_company", clientCompany);
|
|
|
|
| 47 |
|
| 48 |
formData.append("name_color", designParams.name_color);
|
| 49 |
formData.append("font_size", designParams.font_size);
|
|
@@ -175,6 +177,17 @@ const ReviewSendStep = ({ fileData, designParams, mappings, onBack }) => {
|
|
| 175 |
</h3>
|
| 176 |
|
| 177 |
<div className="space-y-4">
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 178 |
<div>
|
| 179 |
<label className="block text-xs font-medium text-gray-700 mb-1">Sender Email</label>
|
| 180 |
<div className="w-full border border-gray-200 rounded-lg p-3 bg-gray-50 text-gray-700 font-medium">
|
|
|
|
| 10 |
const [subject, setSubject] = useState("Your Attendance Certificate - {event_name}_{event_date}");
|
| 11 |
const [body, setBody] = useState("Dear Dr {first_name},\n\nThank you for attending {event_name}.\n\nYour certificate is attached.\n\nBest Regards,\n\nVolaris Team on behalf of {client_company}");
|
| 12 |
const [fromEmail, setFromEmail] = useState("");
|
| 13 |
+
const [senderName, setSenderName] = useState("Volaris Team");
|
| 14 |
const [sending, setSending] = useState(false);
|
| 15 |
const [status, setStatus] = useState(null);
|
| 16 |
const [progress, setProgress] = useState(null);
|
|
|
|
| 45 |
formData.append("event_name", eventName);
|
| 46 |
formData.append("event_date", eventDate);
|
| 47 |
formData.append("client_company", clientCompany);
|
| 48 |
+
formData.append("sender_name", senderName);
|
| 49 |
|
| 50 |
formData.append("name_color", designParams.name_color);
|
| 51 |
formData.append("font_size", designParams.font_size);
|
|
|
|
| 177 |
</h3>
|
| 178 |
|
| 179 |
<div className="space-y-4">
|
| 180 |
+
<div>
|
| 181 |
+
<label className="block text-xs font-medium text-gray-700 mb-1">Sender Name</label>
|
| 182 |
+
<input
|
| 183 |
+
type="text"
|
| 184 |
+
className="w-full border border-gray-300 rounded-lg p-3 text-gray-900 focus:ring-2 focus:ring-blue-500 focus:border-blue-500 outline-none"
|
| 185 |
+
placeholder="e.g., Volaris Team"
|
| 186 |
+
value={senderName}
|
| 187 |
+
onChange={(e) => setSenderName(e.target.value)}
|
| 188 |
+
/>
|
| 189 |
+
<p className="text-xs text-gray-500 mt-1">This name appears in the recipient's inbox</p>
|
| 190 |
+
</div>
|
| 191 |
<div>
|
| 192 |
<label className="block text-xs font-medium text-gray-700 mb-1">Sender Email</label>
|
| 193 |
<div className="w-full border border-gray-200 rounded-lg p-3 bg-gray-50 text-gray-700 font-medium">
|